1.创建vector的方式
a.初始化10个整型变量
vector <int> a(10);
这样写最后,vector容器中是10个0;
b.初始化10个整型变量,并赋初值为1
vector <int> a(10,1);
c.利用对另外一个vector容器进行截取来创建一个新的vector
vector <int> a(10);
int i=0;
for(vector<int>::iterator it = a.begin();it!=a.end();it++)
{
(*it) = i;
cout<<(*it);
i++;
}
//为a这个容器赋值为0123456789
cout<<endl;
vector <int> b(a.begin(),a.begin()+3);
for(vector<int>::iterator it = b.begin();it!=b.end();it++)
{
cout<<(*it);
}
//结果为012
d.利用另外一个vector容器来创建一个新的vector
//声明大小为10个整型变量的vector容器,默认为10个0
vector <int> a(10);
vector <int> b(a);
//对新生成的容器b进行遍历
for(vector<int>::iterator it = b.begin();it!=b.end();it++)
{
cout<<(*it);
}
函数 | 说明 |
---|---|
a.assign(b.begin(), b.begin()+3); | b为向量,将b的0~2个元素构成的向量赋给a |
a.assign(4,2); | //是a只含4个元素,且每个元素为2 |
a.back(); | 返回a的最后一个元素 |
a.front(); | 返回a的第一个元素 |
a[i]; | 返回a的第i个元素,当且仅当a[i]存在,如果不存在则会返回乱码 |
a.clear(); | 清空a中的元素 |
a.empty(); | 判断a是否为空,空则返回ture,不空则返回false |
a.pop_back(); | 删除a向量的最后一个元素 |
a.erase(a.begin()+1,a.begin()+3); | //删除a中第1个(从第0个算起)到第2个元素,也就是说删除的元素从a.begin()+1 |
a.push_back(5); | 在a的最后一个向量后插入一个元素,其值为5 |
a.insert(a.begin()+1,5); | 在a的第1个元素(从第0个算起)的位置插入数值5,如a为1,2,3,4,插入元素后为1,5,2,3,4 |
a.insert(a.begin()+1,3,5); | 在a的第1个元素(从第0个算起)的位置插入3个数,其值都为5 |
a.insert(a.begin()+1,b+3,b+6); | b为数组,在a的第1个元素(从第0个算起)的位置插入b的第3个元素到第5个元素(不包括b+6),如b为1,2,3,4,5,9,8 ,插入元素后为1,4,5,9,2,3,4,5,9,8 |
a.size(); | //返回a中元素的个数; |
a.capacity(); | 返回a在内存中总共可以容纳的元素个数 |
a.resize(10); | 将a的现有元素个数调至10个,多则删,少则补,其值随机 |
a.resize(10,2); | 将a的现有元素个数调至10个,多则删,少则补,其值为2 |
a.reserve(100); | 将a的容量(capacity)扩充至100,也就是说现在测试a.capacity();的时候返回值是100.这种操作只有在需要给a添加大量数据的时候才 显得有意义,因为这将避免内存多次容量扩充操作(当a的容量不足时电脑会自动扩容,当然这必然降低性能) |
a.swap(b); | //b为向量,将a中的元素和b中的元素进行整体性交换 |
a==b; | //b为向量,向量的比较操作还有!=,>=,<=,>,< |
vector的合并
使用insert函数v:
v.insert(v.end(),v1.begin(),v1.end());
v.insert(v.end(),v2.begin(),v2.end());
find函数:用来查找容器中是否存在这个函数,返回一个迭代器。
sort函数:可以对容器进行排序,也可以对数组进行排序。
数组:sort(a,a+5) 容器:sort(vector.begin(),vector.end())
unique函数:对一个已排序的容器操作,将重复元素移动到容器末尾,并返回第一个重复元素的迭代器位置
1.利用迭代器进行遍历
for(vector<int>::iterator it = b.begin();it!=b.end();it++)
{
cout<<(*it);
}
#include
#include
using namespace std;
int main()
{
int A[] ={1,2,3,4,5};
set a(A,A+5);
int B[] ={1,2,3,4,5,6,7};
set b(B,B+7);
vectorc ;
set_union(a.begin(),a.end(),b.begin(),b.end(),inserter(c,c.end()));
for(auto i:c)
{
cout<
结果为:1234567
注意: auto须在C++11中使用,自动类型
algoritm
例如: setInt是用set< int >声明的容器,现已包含1,3,5,7,9元素。
bool bFind = binary_search(setInt.begin(),setInt.end(),5);
此时 bFind == true
4.常用的排序算法
random_shuffle: 对指定范围内的元素随机调整次序。
reverse: 对指定范围内元素重新反序排序。
merge: 合并两个有序序列,存放到另一个序列。
5.常用的拷贝和替换算法
6.常用的算术与生成算法
accumulate: 对指定范围内的元素求和,然后结果再加上一个由val指定的初始值。
fill: 将输入值赋给标志范围内的所有元素。
7.常用的集合算法
8.常用的遍历算法
参考文章:https://www.cnblogs.com/Nonono-nw/p/3462183.html