【问题标题】:vector::push_back vs vector::operator[]vector::push_back 与 vector::operator[]
【发布时间】:2012-06-15 22:46:23
【问题描述】:

c++程序下面,

include<iostream>
#include<vector>
using namespace std;

int main()
{
     vector<int> numbers;

    numbers.push_back(2);
    numbers.push_back(10);
    numbers.push_back(5);
    numbers.push_back(3);
    numbers.push_back(7);

    numbers[3] = 8;
    numbers[5] = 11;

    for(int i=0; i<numbers.size(); ++i)
    {
            cout<<" "<<numbers[i];
    }
}    

ideone 上查看。

这里,numbers[3] 正在工作,但 numbers[5]
看起来,vector::operator[] 不会像 vector::push_back 那样增加向量的大小。
那么,这是两者之间的唯一区别还是还有其他的区别

【问题讨论】:

  • 这就是区别。你为什么在问题中回答你的问题?

标签: c++ stl vector operator-keyword push-back


【解决方案1】:

std::vector::operator[]: "访问指定元素"

std::vector::push_back: "在末尾添加一个元素"

看到 c++ 参考资料,我感到非常惊讶。你应该试试看。

【讨论】:

    【解决方案2】:

    push_back 在背面创建一个具有指定值的新元素。 operator[] 要求元素存在;它只是访问它。 [5] 不起作用的原因是因为你有 5 个元素,所以你的索引范围是 0 到 4。

    通常,在添加新元素时,push_back 优先于resize,其次是operator[]。但是,只有一个可以用于读取,并且还需要operator[] 来维持正常的数组语法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-12
      • 1970-01-01
      • 2013-10-15
      • 2021-06-18
      • 2023-03-21
      • 1970-01-01
      相关资源
      最近更新 更多