vector的push_back和vector[]=的方式有什么区别?

std::vector<Account> userList;
for(int i = 0; i < 100; i++)
   userList.push_back(...)

std::vector<Account> userList(100);
for(int i = 0; i < 100; i++)
   userList[i] = ....;

这两个有什么区别,性能如何,为什么

std::vector<Account> userList;
std::vector<Account> userList(100);

构造函数使用的重载方式不一样。前面的一开始,size=0,随着push_backc增长长度,动态分配空间,每次进来一个长度+1

后面的一开始就开辟空间,size=100,并且每个全部初始化为0。

至于速度,100万数据结果,说明赋值的方法快一点

push_back:631ms
assignment:137ms
请按任意键继续. . .