通过 vector.begin() 命令访问 vector 的第一个元素
Access the first element of vector by vector.begin() command
我正在尝试理解代码的一部分,其中
(*this).bond.assign(mck.bond.begin(), mck.bond.end())
我想了解begin()和end()命令的作用。我在不同的地方读到它是一个迭代器索引,但我无法理解它的含义。我试图通过编写简短的代码来理解它,但它不起作用。有人可以帮助我理解上面的代码行以及begin()和end()命令的作用。
int main()
{
vector<int> vec_name;
vec_name.push_back(10);
vec_name.push_back(20);
vec_name.push_back(30);
vec_name.push_back(40);
cout << vec_name.size() <<endl;
cout << vec_name.begin() <<endl;
}
>.begin()
返回迭代器,而不是元素或对元素的引用。这与打印vec_name[i]
或使用返回引用的vec_name::front()
不同。因此,要打印返回值,您需要声明一个迭代器,该迭代器接收 vec_name.begin()
的返回值,然后打印迭代器。
**编辑:**使用您的示例代码,它将是这样的:
int main()
{
vector<int> vec_name;
vector<int>::iterator it;
vec_name.push_back(10);
vec_name.push_back(20);
vec_name.push_back(30);
vec_name.push_back(40);
cout << vec_name.size() <<endl;
//cout << vec_name.begin() <<endl; //cannot print iterators directly
it = vec_name.begin(); //Pass return value to iterator.
cout << *it << endl; //Print dereferenced iterator
}
相关文章:
- 在c++中用vector填充一个简单的动态数组
- 为什么它只打印双链接列表的第一个值,而我的程序却崩溃了
- std::find,返回所有找到的值的替代方法,而不仅仅是存在重复的向量的第一个值
- 如何仅读取文本文件中的第一个值
- 访问 std:vector 的类成员 std:vector 在一个类中与另一个 std:vector
- 在C++中,如何在第一个"system()"结束后执行第二个"system()"?
- 查找不在标准中的第一个值::设置<int>最小-最大值
- C++:忽略第一个 cin.ignore 之后的输入
- 在C++中打印多个矢量的第一个值
- C++去除前x个元素的有效方法,在不改变向量大小的情况下将第x+1个元素推到第一个
- C++第一个cout将不会打印
- 我们可以在第一个else-if条件结束后使用另一个else-if条件吗
- OpenGL:第二个VBO破坏了第一个VBO
- 为什么第一个Dynamic_cast没有投射到基类?
- OpenGL 2D游戏只绘制第二个精灵纹理而不是第一个
- C++ 为什么程序只读取第一个值
- 在我的第一个C++程序中需要一些帮助(简单)
- 为什么我的代码在第一个 if 语句处中断?
- 使用VERTH with vector :: push_back作为第一个param时,C 编译错误
- 当第一个 itr 在最后一个 itr 之后时,std::vector 范围构造函数的官方行为是什么?