目录
vector的构建
- vector<int> vec1; //不带参数的构造函数初始化
- vector<int> vec2(10); //初始化元素个数为10,默认初始化为0
- vector<int> vec3(10, 40); //开辟10个空间大小,初始化元素为40
- vector<int> vec4(vec3); //通过同类型的vector初始化
int array[10] = { 0 };
for (int i = 0; i < 10; i++)
{
array[i] = rand()%100;
}
5. vector<int> vec5(array, array + 10); //通过数组地址区间实现插入,左闭右开
6. vector<int> vec6(vec5.begin(), vec5.end());
##include<iostream>
#include<vector>
#include<functional>
#include<algorithm>
using namespace std;
template<typename Container>
void showBase(Container &con)//打印基本信息
{
if (con.empty()) //判断是否为空
{
cout << "vec is empty!" << endl;
}
cout << con.size() << endl;
cout << con.max_size() << endl;
}
template<typename Container>//打印元素
void showContainer(const Container &con)//通过迭代器打印数组元素
{
Container::const_iterator it = con.begin();//注意这里使用 常量迭代器
for (; it != con.end(); it++)
{
cout << *it << " ";
}
cout << endl;
}
int main()
{
vector<int> vec1; //空容器
vector<int> vec2(10); //初始化元素个数为10,默认初始化为0
vector<int> vec3(10, 40);//开辟10个空间大小,初始化元素为40
vector<int> vec4(vec3);
int array[10] = { 0 };
for (int i = 0; i < 10; i++)
{
array[i] = rand()%100;
}
vector<int> vec5(array, array + 10);//半开半闭区间,左闭右开
vector<int> vec6(vec5.begin(), vec5.end());
showBase(vec2);
//showContainer(vec1);
showContainer(vec2);
showContainer(vec3);
showContainer(vec4);
showContainer(vec5);
showContainer(vec6);
return 0;
}
打印结果:
vector的插入
for (int i = 0; i < 10; i++)
{
vec6.push_back(rand() % 1006 + 1);
}
vec6.insert(vec6.begin(), 55);
showContainer(vec6);
vec6.insert(vec6.end(), 55);
showContainer(vec6);
vector的排序
sort(vec6.begin(), vec6.end());
showContainer(vec6);
sort(vec6.begin(), vec6.end(),greater<int>());
showContainer(vec6);