21xrx.com
2024-12-27 17:28:53 Friday
登录
文章检索 我的文章 写文章
C++中foreach的用法详解
2023-07-01 22:58:31 深夜i     --     --
C++ foreach 用法 详解 循环

在C++中,foreach是一种简便的循环语法,可以用来遍历容器中的元素。foreach语法非常灵活,支持迭代器、指针、数组、标准容器等多种结构类型。

foreach语法采用for循环嵌套迭代器,其语法格式如下:


for (auto& item : container)

  // 在这里对item进行操作

其中,“auto”关键字表示自动推导变量类型,“item”是自定义的变量名,“container”表示要遍历的容器、数组或迭代器。

使用foreach可以明显减少代码量,提升代码的可读性和可维护性,下面给出几个foreach的使用实例。

(1)普通数组的使用:


int arr[] = 4;

for (auto& val : arr)

  cout << val << " ";  //输出 1 2 3 4 5

(2)STL容器的使用:


vector<int> vec 5 ;

for (auto& val : vec)

  cout << val << " ";  //输出 1 2 3 4 5

(3)迭代器的使用:


vector<int> vec 1;

for (auto iter = vec.begin(); iter != vec.end(); ++iter) {

  auto &val = *iter;

  cout << val << " ";  //输出 1 2 3 4 5

}

(4)自定义类型的使用:


class Person {

public:

  string name_;

  int age_;

  Person(string name, int age) :name_(name), age_(age) {}

};

vector<Person> persons{ Person("zhangsan", 20), Person("lisi", 30), Person("wangwu", 40) };

for (auto& person : persons)

  cout << person.name_ << " " << person.age_ << endl;

需要注意的是,在foreach中对容器元素的修改需要使用引用变量,否则修改无法保存。同时,foreach语法也不适合对容器进行删除元素等操作,因为这样会破坏迭代器的循环,在循环内部无法修改容器结构。

综上,foreach是C++中一种非常实用的循环语法,可以代替传统的for循环,简化代码编写。不过需要注意的是,foreach的使用需要遵循一定的规则和限制,避免出现潜在的问题。

  
  
下一篇: C++的bind头文件

评论区

{{item['qq_nickname']}}
()
回复
回复