【问题标题】:Is the code valid. If i want to display first element? if not then what will s.begin() return?代码是否有效。如果我想显示第一个元素?如果不是,那么 s.begin() 会返回什么?
【发布时间】:2017-12-10 19:28:58
【问题描述】:

我正在尝试显示插入向量中的第一个元素。我可以使用 begin() 来访问它吗?

 vector<int>s;
 s.push_back(5);
 cout<<s.begin();

【问题讨论】:

  • 为什么不编译看看呢?
  • 如果你想知道成员函数是做什么的consult the reference
  • 你知道如何使用迭代器吗?您以前是否使用过迭代器,例如在一个循环中?也许你应该find a good beginners book阅读,因为这是这样一本书会告诉你的。
  • 您可能正在寻找std::vector::front
  • "尝试运行它。但是给了我一个错误。"好吧..它可能无效然后 :p std::vector::begin 返回一个迭代器,其中间接运算符被重载。 std::cout &lt;&lt; *s.begin( );

标签: c++ stl


【解决方案1】:

在 C++ 中,begin() 成员函数返回一个指向前面的指针(或迭代器)(很多时候,无论如何)。

您可以使用begin() 访问第一个元素,但您必须先取消引用它(如指针):

cout << *s.begin(); // 5

这是一个演示:https://repl.it/JQiU/0

【讨论】:

    【解决方案2】:

    使用std::vector::operator[] 访问。

    vector<int>s;
    s.push_back(5);
    cout << s[0];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-01
      • 2022-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多