Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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++ 通过vector.begin()命令访问vector的第一个元素_C++ - Fatal编程技术网

C++ 通过vector.begin()命令访问vector的第一个元素

C++ 通过vector.begin()命令访问vector的第一个元素,c++,C++,我试图理解代码的一部分,其中 (*this).bond.assign(mck.bond.begin(), mck.bond.end()) 我想了解begin()和end()命令的作用。我在不同的地方读到它是一个迭代器索引,但我不理解它的含义。我试图通过编写一个简短的代码来理解它,但它不起作用。有人能帮我理解上面这行代码以及begin()和end()命令的作用吗 intmain() { 向量向量名称; 车辆名称。向后推(10); 车辆名称。向后推(20); 车辆名称。向后推(30); 车辆名称。

我试图理解代码的一部分,其中

(*this).bond.assign(mck.bond.begin(), mck.bond.end())
我想了解begin()和end()命令的作用。我在不同的地方读到它是一个迭代器索引,但我不理解它的含义。我试图通过编写一个简短的代码来理解它,但它不起作用。有人能帮我理解上面这行代码以及begin()和end()命令的作用吗

intmain()
{
向量向量名称;
车辆名称。向后推(10);
车辆名称。向后推(20);
车辆名称。向后推(30);
车辆名称。向后推(40);
cout
.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 

}
intmain()
{
向量向量名称;
向量::迭代器;
车辆名称。向后推(10);
车辆名称。向后推(20);
车辆名称。向后推(30);
车辆名称。向后推(40);

你没看过吗?一个技巧,如果你想访问第一个元素的值,你应该取消引用
vec\u name.begin()
。有一个很好的书籍列表。@frslm实际上你应该使用
front()
。另外,的文档也很有用。你的案例是(2)@rida我建议你仔细阅读一下迭代器是什么。这应该会澄清你的困惑,因为这是
.begin()
的核心功能。