首頁 > 後端開發 > C++ > 如何選擇正確的 C 11 基於範圍的 `for` 循環語法?

如何選擇正確的 C 11 基於範圍的 `for` 循環語法?

Patricia Arquette
發布: 2024-12-16 05:55:09
原創
497 人瀏覽過

How to Choose the Right C  11 Range-Based `for` Loop Syntax?

了解C 11 中基於範圍的for 語法

C 11 中基於範圍的for 循環提供了用於迭代容器的簡化語法。根據您打算觀察還是修改容器的元素,語法會有所不同。

對於觀察元素

要觀察元素而不修改它們,建議的語法是:

for (const auto& elem : container)
登入後複製

此語法通過 constst引用捕獲元素,避免在物件昂貴的情況下進行不必要的複製copy.

用於修改元素

如果需要就地修改元素,語法為:

for (auto& elem : container)
登入後複製

此語法捕獲元素透過非常量引用,讓您在循環體中修改它們。

特殊情況:代理迭代器

但是,對於使用代理迭代器的容器(例如std::vector),需要不同的語法來修改元素:

for (auto&& elem : container)
登入後複製

This語法使用「&&」類型修飾符來正確使用代理

摘要

  • 對於觀察元素,如果複製成本低廉,請使用for (const auto& elem : container) 或 for (auto elem : container) 。
  • 要修改元素,請使用 for (auto& elem : 容器) 或 for (auto&& elem : 容器)用於代理迭代器。
  • 在通用程式碼中,偏好使用 const 引用語法進行觀察,使用 auto&& 進行修改,以優雅地處理標準和代理迭代器。

以上是如何選擇正確的 C 11 基於範圍的 `for` 循環語法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板