创建一个vector对象,并赋值:
#include "stdafx.h" #include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { int n,i; cin >> n; vector<int> v(n);//创建一个vector对象,大小为n for (i = 0; i < n; i++) cin >> v[i];//赋值 for (int i = 0; i < n; i++) cout << v[i] << " ";//输出vector里面的值 return 0; }
初始化vector元素的值:
vector<int>(10,0)//大小为10,初始化为0
将数组里的值放到vector里:
#include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { int a[] = { 11,13,19,23,27 }; vector<int> v(a, a + 5);//将a[0]到a[4]的值放入vector里 for (int i = 0; i < v.size(); i++) cout << v[i] << " "; return 0; }
从vector的尾部插入或取出元素:
#include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { vector <int> v; v.push_back(1);//插入元素 v.push_back(2); v.pop_back();//取出元素 for (int i = 0; i < v.size(); i++) cout << v[i] << " "; return 0; }
用迭代器访问vector的元素:
#include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { vector <int> v; v.push_back(1);//插入元素 v.push_back(2); v.push_back(3); v.push_back(4); vector<int>::iterator i, iend;//迭代器定义两个指向vector里元素的指针 iend = v.end(); for ( i = v.begin(); i!=v.end(); i++) cout << *i << " "; return 0; }
在任意位置插入vector元素:
#include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { vector <int> v; v.push_back(1);//插入元素 v.push_back(2); v.push_back(3); v.push_back(4); vector<int>::iterator i, iend; v.insert(v.begin(), 11);//在头之前插入11 v.insert(v.end(), 11);//在尾之前插入11 for ( i = v.begin(); i!=v.end(); i++) cout << *i << " "; return 0; }
利用erase删除vector元素:
// 测试.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<iostream> #include<vector> #include<algorithm> class my { public: char*name; int age; my(char*name, int age) { this->name = name; this->age = age; } ~my() {}; }; int main() { using namespace std; my* pdog =new my("dog", 1); my* pmonkey = new my("pmonkey", 1); my* pchicken =new my("pchicken", 1); my* psnake = new my("psnake", 1); vector<my*> v; v.push_back(pdog);//将类地址放入容器 v.push_back(pmonkey); v.push_back(pchicken); v.push_back(psnake); delete pmonkey; v.erase(v.begin() + 1); vector<my*>::iterator i, iend;//iterator 定义一个容器指针 iend = v.end(); for (i = v.begin(); i != iend; i++) { cout << (*i)->name << " " << (*i)->age << endl; } v.clear(); return 0; }
反向遍历vector的元素:
#include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { vector <int> v; v.push_back(1);//插入元素 v.push_back(2); v.push_back(3); v.push_back(4); vector<int>::reverse_iterator i, riend; riend = v.rend();//vector尾 for ( i = v.rbegin(); i!=v.rend(); i++)//rbegin是vector头 cout << *i << " "; return 0; }
两个vector容器元素交换,直接用swap(v1,v2);
判断vector是否为空:
#include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { vector <int> v; v.push_back(1);//插入元素 v.push_back(2); v.push_back(3); v.push_back(4); if (v.empty())//为空返回true cout << "yes"; else cout << "no"; return 0; }
系统所允许的vector容器的最大元素:
cout << v.max_size();
当前vector所容纳的元素个数:
cout << v.size();
vector容器首元素:
cout << v.front();
vector容器末元素:
cout<<v.back();