对于顺序容器vector,在一系列的插入元素之后,它里面的元素的顺序会不会被vector重新排列顺序,对于重复插入相同的元素时vector又是怎么处理的。
我们用实验说话:
上我的代码
std::vector<int> vec_it;
std::vector<double> vec_db;
for(int i = 3;i < 11; i++)
{
vec_it.push_back(i%9); // 3,4,5,6,7,8,0,1
vec_db.push_back(i%7); // 3,4,5,6,0,1,2,3
}
输出样式:
std::cout << "the int vector:" << std::endl;
for(std::vector<int>::size_type i = 0; i < vec_it.size(); i++)
{
std::cout << vec_it.at(i) << " ";
}
std::cout << "\n" << std::endl;
std::cout << "the vector vector:" << std::endl;
for(std::vector<double>::size_type i = 0; i < vec_db.size(); i++)
{
std::cout << vec_db.at(i) << " ";
}
输出结果为:
实验结论:vector中的元素的顺序时按照插入顺序不表连续存储的,而且也不会做重复检查。
项目代码见我的github仓库,里面附有vector常见内置函数及其用法。