📜  基于范围的for循环c ++(1)

📅  最后修改于: 2023-12-03 15:37:48.626000             🧑  作者: Mango

基于范围的for循环c ++

基于范围的for循环是C++11引入的一个新特性,它允许程序员使用一种更简洁的方式遍历一个序列容器,如vector 和list。它所需的代码量更少也更容易理解,而且可以避免一些出错的情况。

如何使用基于范围的for循环c ++

基于范围的for循环使用关键字“auto”来推导迭代器类型,并使用关键字“:”来分离迭代器范围和循环体。以下是基于范围的for循环的语法:

for (auto element : container) 
{ 
  statement;
}

其中,“auto”用于推导迭代器的类型,“element”是一个临时变量名,用于存储当前容器中的值,“container”是要迭代的容器,循环体中的“statement”则是需要执行的语句。

基于范围的for循环c ++ 示例

以下是一个基于范围的for循环的示例代码:

#include <iostream> 
#include <vector> 

using namespace std; 

int main () 
{ 
   vector<int> numbers = {10, 20, 30, 40, 50}; 

   // 使用基于范围的for循环遍历vector中的元素 
   for (auto element : numbers) 
   { 
      cout << element << endl; 
   } 

   return 0; 
}

在此代码中,我们使用vector存储整数,然后使用基于范围的for循环遍历每一个元素并输出。输出结果如下:

10 
20 
30 
40 
50
基于范围的for循环c ++ 支持的容器类型

基于范围的for循环适用于所有的容器类型,包括vector、list、deque、map和set等。这一特性也支持普通的数组和字符串,如下所示:

#include <iostream> 
#include <string> 

using namespace std; 

int main () 
{ 
   int array[] = {10, 20, 30, 40, 50}; 

   // 使用基于范围的for循环遍历数组中的元素 
   for (auto element : array) 
   { 
      cout << element << endl; 
   } 

   string name = "C++"; 

   // 使用基于范围的for循环遍历字符串中的字符 
   for (auto character : name) 
   { 
      cout << character << endl; 
   } 

   return 0; 
}

输出结果:

10 
20 
30 
40 
50 
C 
+ 
+
总结

基于范围的for循环比传统的for循环更灵活、更简洁。但它也存在一些限制,例如使用基于范围的for循环时如果需要对容器进行修改则需要使用引用。因此,在使用此特性时要注意语句块中不能修改迭代器。