Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ std::vector的这种读取是如何工作的?_C++_Vector_Iterator - Fatal编程技术网

C++ std::vector的这种读取是如何工作的?

C++ std::vector的这种读取是如何工作的?,c++,vector,iterator,C++,Vector,Iterator,我见过这段代码,它应该以一种非常奇怪的方法读取向量 我想知道这意味着什么: for(auto &it: a) cin >> it; 我已经知道这个for循环通过整个向量进行迭代,但是部分: auto &it 及 使我困惑;因为,我习惯于使用push\u back()读取向量元素 整个代码块: int n; cin >> n; vector<int> a(n); for (auto &it : a) cin >> it;

我见过这段代码,它应该以一种非常奇怪的方法读取向量

我想知道这意味着什么:

for(auto &it: a) cin >> it;
我已经知道这个for循环通过整个向量进行迭代,但是部分:

auto &it

使我困惑;因为,我习惯于使用
push\u back()
读取向量元素

整个代码块:

int n;
cin >> n;
vector<int> a(n);
for (auto &it : a) cin >> it;
intn;
cin>>n;
向量a(n);
对于(自动&it:a)cin>>it;

你可能会被某人糟糕的名字绊倒。(auto&it:a)中的
it
不是迭代器,而是向量的一个元素


一次浏览一行程序
intn;
声明一个新的int来存储向量的大小

cin>>n
从用户处获取向量的大小

向量a(n);
声明大小为
n
的整数向量。这一行表示所有整数

for(自动&elm:a)
对于我们刚刚创建的每个int,在循环体中循环,命名每个
elm

cin>>elm;

从用户处读入一个值,并将其值赋给向量中的当前元素。此处不生成int,因为它们已经存在,我们只分配给它们。

您可能会被某人糟糕的命名绊倒。(auto&it:a)中的
it
不是迭代器,而是向量的一个元素


一次浏览一行程序
intn;
声明一个新的int来存储向量的大小

cin>>n
从用户处获取向量的大小

向量a(n);
声明大小为
n
的整数向量。这一行表示所有整数

for(自动&elm:a)
对于我们刚刚创建的每个int,在循环体中循环,命名每个
elm

cin>>elm;

从用户处读入一个值,并将其值赋给向量中的当前元素。此处不生成int,因为它们已经存在,我们只分配给它们。

名称
it
具有误导性,因为它不是迭代器。您缺少的是,所讨论的for循环在一个已经大小的向量上运行,并为向量中已存在的每个元素读取一个输入。名称
it
具有误导性,因为它不是迭代器。您缺少的是,所讨论的for循环正在对已确定大小的向量进行操作,并为向量中已存在的每个元素读取一个输入。
int n;
cin >> n;
vector<int> a(n);
for (auto &it : a) cin >> it;