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方法。