vector::push_back vs vector::operator[]

vector::push_back vs vector::operator[]

本文关键字:vector operator back push vs      更新时间:2023-10-16

下面的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];
    }
}    

在IDE上看到它。

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

std::vector::operator[]: "Access specified element"

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

我在查看 c++ 引用方面非常出色。你应该尝试一下。

push_back使用

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

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