vector的定义
长度根据需求改变的数组
vector<typename> name(n); // 相当于typename类型的一维数组。typename可以是int,double,long,char,结构体。n表示该一维数组的长度,只能用小括号。
vector<vector<int>+> name; // 相当于二维数组;加号“+”的位置是空格,必须这样定义
vector容器内元素的访问
1. 通过下标访问 vi[index]
数组长度:vi.size();
struct Stu{ char name[20]; int score; }; vector<Stu> vi(100); for(int i=0;i<vi.size();i++){ cin>>vi[i].name>>vi[i].score; }
2. 通过迭代器访问
vector<int>::iterator it = t.begin(); for(int i=0;i<t.size();i++){ cout<<*(it+i)<<endl; }
我觉得不好用。
其他的函数:
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<int> a; // 声明定义一个int向量a
vector<int> a(10); // 声明定义一个初试大小为10的int向量a
vector<int> a(10,0); // 上一个的基础上,初始值设置为0
vector<int> b(a);// 声明一个int向量b.用a初始化他
vector<int> b(a.begin(),a.begin()+4);
vector<int> 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方法。