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

Access the first element of vector by vector.begin() command

本文关键字:vector 第一个 元素 访问 begin 通过 命令      更新时间:2023-10-16

我正在尝试理解代码的一部分,其中

(*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 
}