据我所知,可以通过std::vector两种方式将元素分配给a :
vec[i] = value
vec.push_back(value)
但是,第一种方法似乎没有作用vec.size(),并且随后的调用也将其覆盖vec.push_back()。一个最小的例子来演示:
#include <iostream>
#include <vector>
int main()
{
std::vector<unsigned char> things;
things.reserve(2);
things[0] = 'a';
std::cout << "Size after inserting a: ";
std::cout << things.size() << std::endl;
things.push_back('b');
std::cout << "Size after inserting b: ";
std::cout << things.size() << std::endl;
std::cout << "Contents: ";
for (int i=0; i<2; i++)
{
std::cout << things[i] << std::endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
该程序的输出为:
Size after inserting a: 0
Size after inserting …Run Code Online (Sandbox Code Playgroud)