Sim*_*ity 1 c++ vector push-back
在 C++ Primer 一书的第 (3) 章中,有以下 for 循环将向量中的元素重置为零。
vector<int> ivec; //UPDATE: vector declaration
for (vector<int>::size_type ix = 0; ix ! = ivec.size(); ++ix)
ivec[ix] = 0;
Run Code Online (Sandbox Code Playgroud)
for 循环是否真的0
为元素赋值,还是我们必须使用该push_back
函数?
那么,以下内容有效吗?
ivec[ix] = ix;
Run Code Online (Sandbox Code Playgroud)
谢谢。
for 循环是否真的为元素分配了 0 值?或者,我们必须使用 push_back 函数?
ivec[ix] =0
更新向量中现有元素的值,而push_back
函数向向量添加新元素!
那么,以下内容有效吗?
ivec[ix] = ix;
它是完全有效的IF ix < ivec.size()
。
如果你使用iterator
, 而不是 index会更好。像这样,
int ix = 0;
for(vector<int>::iterator it = ivec.begin() ; it != ivec.end(); ++it)
{
*it = ix++; //or do whatever you want to do with "it" here!
}
Run Code Online (Sandbox Code Playgroud)
使用iterator
with STL 是惯用的。更喜欢迭代器而不是索引!
归档时间: |
|
查看次数: |
2608 次 |
最近记录: |