西安电子大学计算机考研复试机试(2019)+ C++STL标准库之Vector

2019-04-13 16:07发布

vector的定义

长度根据需求改变的数组 vector name(n);  // 相当于typename类型的一维数组。typename可以是int,double,long,char,结构体。n表示该一维数组的长度,只能用小括号。 vector+> name; // 相当于二维数组;加号“+”的位置是空格,必须这样定义

vector容器内元素的访问 

1. 通过下标访问    vi[index] 数组长度:vi.size(); struct Stu{ char name[20]; int score; }; vector vi(100); for(int i=0;i>vi[i].name>>vi[i].score; }  2. 通过迭代器访问 vector::iterator it = t.begin(); for(int i=0;i 我觉得不好用。

其他的函数:

vi.push_back(i);    vi.pop_back(); // 分别是从尾部插入i 和删除 vi.clear(); // 可以用于多组案例的测试中,用于一个案例结束后的清除工作。 vi.insert(vi.begin()+2,-1); // 可以在任意位置添加一个元素。如,将-1添加到第二个元素后面 vi.erase(vi.begin()+3); // 可以删除任意位置的元素。如删除第四个元素a[3] vi.erase(vi.begin()+2,vi.end()-2); // 可以删除一个范围内的所有元素 [a,b)  
vector的定义: vector a;  // 声明定义一个int向量a vector a(10); //  声明定义一个初试大小为10的int向量a vector a(10,0); // 上一个的基础上,初始值设置为0 vector b(a);// 声明一个int向量b.用a初始化他 vector b(a.begin(),a.begin()+4); vector a(4,0); a.push_back(1); a.push_back(2); a.push_back(8);  这段代码,相当于定义了一个初始长度为4,初始值为0的int型vector,通过a.push_back(x)赋值,并不是从a[0]开始的,而是从第五个开始,前四个默认还是0.只能通过a[i]改变原有的值。
vector本身并没有find的方法。当vector是string类型的元素时,可以用string中的find方法。