vector::push_back vs vector::operator[]
vector::push_back vs vector::operator[]
下面的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[]
来维护正常的数组语法。
相关文章:
- std::vector::assign/std::vector::operator=(const&) 是否保证在"this"中重用缓冲区?
- 为什么 std::vector::operator= 过度分配内存
- 我可以在 c++ 中正确设置 std::vector by operator[] 的第 n 个值吗?
- 如何重载 std::vector::operator=()
- 为什么 vector::operator[] 的实现方式与 map::operator[] 不同?
- Vector::at vs. vector::operator[] -- 不同的行为
- std::vector::back 和 vector::operator[ vector::size() - 1] 之间
- vector::push_back vs vector::operator[]
- 正在获取 C++11 中 std::vector::operator[](size) 未定义行为的地址
- 对矢量(vector::operator[]和vector:(size))的只读访问是异步安全的
- 如何在使用vector::operator[]迭代结构的向量时访问结构成员
- vector::at vs. vector::operator[]
- 从std::vector::operator[]获取返回地址做什么
- std::vector:<T>:resize(n) vs reserve(n) with operator[]
- 优化' std::vector operator [] ' (vector访问),当它成为瓶颈时
- 为什么vector迭代器没有显示operator= ?
- 使用std::vector::at或std::vector::operator[]访问vector:中存储的对象
- std::vector::operator[]返回的引用可以使用多长时间?
- C++: std::vector [] operator
- EASTL 与 STL,std::vector:<uint64_t>:operator[] 怎么会有这样的性能差异