vector操作:
#include <iostream>
#include <vector>
using namespace std;
void vectorInit()
{
int array[] = {1,2,3,4,5,6,7,8,9};
vector<int> v1; //vector无参构造函数;
vector<int> v2[10]; //vector构造函数,构造容量为10个int的vcetor;
vector<int> v3(array,array+sizeof(array)/sizeof(array[0])); //vector构造函数,参数为开始地址,结束地址;
vector<int> v4(10,10); //vector构造函数,构造10个元素都为10的vector;
for(int i = 0;i < v1.size() ;i++) //v1 赋值;
{
cout << v1[i] << " ";
}
cout << endl;
for(int i = 0;i < v3.size(); i++) //v3 赋值;
{
cout << v3[i] << " ";
}
cout << endl;
for(int i = 0;i < v4.size(); i++) //v4 赋值;
{
cout << v4[i] << " ";
}
cout << endl;
}
void vectorAssign() //赋值函数
{
int array[] = {0,1,2,3,4,5,6,7,8,9};
vector<int> v1(10);
vector<int> v3(array,array+sizeof(array)/sizeof(array[0]));
for(int i = 0;i < v1.size();i++)
{
cout << v1[i] << " ";
}
cout << endl;
vector<int> v2(10);
v2.assign(10,10);
for(int i = 0;i < v2.size();i++)
{
cout << v2[i] << " ";
}
cout << endl;
v2 = v1; //将v1的值赋给v2;
for(int i = 0;i < v2.size();i++)
{
cout << v2[i] << " ";
}
cout << endl;
vector<int> v4(10);
for(int i = 0;i < 10;i++)
{
v4[i] = i + 1;
}
v2 = v4; //将v4的值赋给v2;
for(int i = 0;i < v2.size();i++)
{
cout << v2[i] << " ";
}
cout << endl;
v4.swap(v1); //交换v1和v4的值;
for(int i = 0;i < v4.size();i++)
{
cout << v4[i] << " ";
}
cout << endl;
}
void vectorIterator() //迭代器操作;
{
vector<int> v1(10);
for(int i = 0;i < 10;i++)
{
v1[i] = i + 1;
}
for(vector<int>::iterator it = v1.begin(); it != v1.end(); it++ ) //遍历v1;
{
cout << *it << " ";
}
cout << endl;
for(vector<int>::reverse_iterator rit = v1.rbegin(); rit != v1.rend(); rit++ ) //反向遍历;
{
cout << *rit << " ";
}
cout << endl;
}
void vectorInsert()
{
vector<int> v1(10);
for(int i = 0;i < v1.size();i++)
{
v1[i] = i + 1;
}
vector<int>::iterator it = v1.begin();
it += 3;
v1.insert(it,100); //配合迭代器插入数据,参数为插入位置和数据;
for(it = v1.begin(); it != v1.end(); it++ )
{
cout << *it << " ";
}
cout << endl;
it = v1.begin();
it++;
v1.insert(it,5,50); //配合迭代器插入数据,参数为插入位置和数据个数和数据;
for(it = v1.begin(); it != v1.end(); it++ )
{
cout << *it << " ";
}
cout << endl;
vector<int> v2(10);
for(int i = 0;i < v2.size();i++)
{
v2[i] = i + 24;
}
it = v2.begin();
v1.insert(v1.begin(), it, it + 5); //配合迭代器插入数据,参数为插入位置和插入目标字符串的起始位置和结束位置;
for(it = v1.begin(); it != v1.end(); it++ )
{
cout << *it << " ";
}
cout << endl;
v2.push_back(525); //尾插数据;
for(it = v2.begin(); it != v2.end(); it++ )
{
cout << *it << " ";
}
cout << endl;
v2.pop_back(); //尾删数据;
for(it = v2.begin(); it != v2.end(); it++ )
{
cout << *it << " ";
}
cout << endl;
it = v2.begin();
v2.erase(it,it + 5); //删除数据,参数为起始位置和结束位置;
for(it = v2.begin(); it != v2.end(); it++ )
{
cout << *it << " ";
}
cout << endl;
v2.clear(); //清空v2;
for(it = v2.begin(); it != v2.end(); it++ )
{
cout << *it << " ";
}
cout << endl;
}
int main()
{
vectorInit();
vectorIterator();
vectorAssign();
vectorInsert();
return 0;
}
deque相关操作
#include <iostream>
#include <deque>
using namespace std;
int main()
{
int array[10] = {1,2,3,3,21,3,4,5,6,3};
deque<int> d1(10);
for(int i = 0;i < d1.size();i++)
{
d1[i] = array[i];
}
d1.push_back(24); //尾插;
d1.push_front(25); //头插;
d1.front() = 5;
d1.back() = 4;
d1.pop_back(); //尾删;
d1.pop_front(); //头删;
for(deque<int>::iterator it = d1.begin();it != d1.end();it++) //利用迭代器删除指定数据后遍历;
{
cout << "*****" << endl;
if(3 == *it)
{
it = d1.erase(it); //返回值为所删除数据的下一个数据的地址;
cout << *it << " ";
it--;
cout << *it << " ";
}
else
{
cout << *it << " ";
}
}
cout << endl;
return 0;
}
: