簡體   English   中英

通過 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 

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM