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)
使用iteratorwith STL 是惯用的。更喜欢迭代器而不是索引!
| 归档时间: |
|
| 查看次数: |
2608 次 |
| 最近记录: |