一、vector和string的联系与不同 1.
vector底层也是用动态顺序表实现的,和string是一样的,但是string默认存储的就是字符串,而vector的功能较为强大一些,vector不仅能存字符,理论上所有的内置类型和自定义类型都能存,vector的内容可以是一个自定义类型的对象,也可以是一个内置类型的变量。 2.
vector在使用时需要进行类模板的实例化,因为传递的模板参数不同,则vector存储的元素类型就会有变化,所以在使用vector的时候要进行类模板的显式实例化。
类模板的第二个参数是空间配置器,这个学到后面再说,而且这个参数是有缺省值的,我们只用这个缺省值就欧克了,所以在使用vector时,只需要关注第一个参数即可。 void test_vector1()
{
string s;
vector v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
//string和vector底层都是用数组实现的,所以他们都支持迭代器、范围for、下标+[]的遍历方式
for (size_t i = 0; i < v.size(); i++)
{
cout |