我正在尝试学习C++ vector 。这是代码:
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector <int> vec;
for(int i=0; i<=10; i++){
vec.push_back(i);
}
for(auto i=vec.begin(); i!=vec.end();i++){
cout<<*i<<" ";
}
}
谁能告诉我这部分是什么?for(auto i=vec.begin(); i!=vec.end();i++){
cout<<*i<<" ";
}
我搜索了Internet,但找不到明确的解释。好的,它会打印出我们将其放入 vector 中的数字,但是我可以得到更多的技术解释吗?
最佳答案
for(auto i=vec.begin(); i!=vec.end();i++){
cout<<*i<<" ";
}
这只是C++中的迭代器。begin()
函数用于返回指向 vector 第一个元素的迭代器。end()
函数用于返回指向 vector 最后一个元素的迭代器。auto
仅推导变量i
的类型。您也可以将其指定为std::vector<int>::iterator i = vec.begin()
。这就是您用来遍历 vector 的迭代器的类型。上面的代码所执行的操作基本上与以下循环类型相同,该循环类型使用索引在数组上循环:
for(size_t i = 0; i != vec.size() ; i++){
cout << vec[i] << " ";
}
您应该阅读有关迭代器的更多信息,因为迭代器是C++中的核心概念。您可以在这里阅读有关它们的更多信息:iterators
std::vector.begin()
std::vector.end()
关于c++ - 有什么明确的解释吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63042690/