#include
//全部初始化为零
vector<int> vec(10, 0);
//全部初始化未指定赋值
vector<int> vec(10);
vector list2(list1);
or
vector list2 = list1;
vector<int> vec = {1, 2, 3};
int arr[] = {11, 32, 41, 25, 67, 100, 88, 233}; // 列表初始化内置数组
// 指出拷贝区域范围,使用数组初始化 vector 对象
vector<int> iv(begin(arr), end(arr)); // 遍历 iv 数据:11 32 41 25 67 100 88 233
vector<int> jv(arr + 2, arr + 7); // 遍历 iv 数据:41 25 67 100 88
//10行6列,全部初始化为零
vector<vector<int>> vec(10, vector<int>(6, 0));
vector> vec(vec1);
vector<vector<int>> vec = {
{1, 2, 3},
{4, 5, 6},
};
// 初始化一个 二维vector 行row,第二个参数为一维vector;
vector<vector<int> > vecto(row,vector<int>(vt[0].begin()+1,vt[0].begin()+3));
void PrintfVector(vector<int> v)
{
for(unsigned int i = 0; i < v.size(); ++i) {
cout<<v[i]<<" ";
}
cout<<endl;
}
void PrintfVector(vector<int> v)
{
// 注:如果参数为const vector 需要用const_iterator
// vector::const_iterator iter=v.begin();
for(vector<int>::iterator it = v.begin(); it != v.end(); ++it)
{
cout<<(*it)<<" ";
}
cout<<endl;
}
void PrintfVector(vector<int> v)
{
// 注:如果参数为const vector 需要用const_iterator
// vector::const_iterator iter=v.begin();
for(auto it = v.begin(); it != v.end(); ++it)
{
cout<<(*it)<<" ";
}
cout<<endl;
}
void PrintfVector(vector<int> v)
{
// 注:如果参数为const vector 需要用const_iterator
// vector::const_iterator iter=v.begin();
for(auto val : v)
{
cout<<( val )<<" ";
}
cout<<endl;
}
for_each(iterator beg, iterator end, _callback);
vector<int> v = {3,5,1,7,10}; // vector容器
auto print = [](const auto& x) // 定义一个lambda表达式
{
cout << x << ",";
};
for_each(cbegin(v), cend(v), print);// for_each算法
for_each( // for_each算法,内部定义lambda表达式
cbegin(v), cend(v), // 获取常量迭代器
[](const auto& x) // 匿名lambda表达式
{
cout << x << ",";
}
);
v.empty()
如果 v 为空,则返回 true, 否则返回 false
v.size(a)
返回数组 v 的长度
v.push_back(a)
将元素a插入到数组v的尾部
v.pop_back()
删除最后一个数据
v.resize(n,m)
重新调整数组大小为n,如果n比原来的小则删除多余信息;如果n比原来大则新增部分初始化为m,其中m可以省略
方法 | 说明 |
---|---|
v.begin() | 返回数组v首元素(也就是v[0])的迭代器 |
v.end() | 返回数组v末尾元素下一个元素的迭代器,为空指针,不指向任何元素 |
v.cbegin() 和 v.cend() | C++11新增,它们返回一个const的迭代器,不能用于修改元素 |
方法 | 说明 |
---|---|
v.insert(pos,elem) | 在pos位置插入一个elem拷贝,传回新数据位置。 |
v.insert(pos,n,elem) | 在pos位置插入n个elem数据。无返回值。 |
v.insert(pos,beg,end) | 在pos位置插入在[beg,end)区间的数据。无返回值。 |
方法 | 说明 |
---|---|
v.erase(pos) | 删除pos位置的数据,传回下一个数据的位置 |
v.erase(beg,end) | 删除[beg,end)区间的数据,传回下一个数据的位置 |
#include
sort(vec.begin(),vec.end()); // (默认是按升序排列,即从小到大)
bool Comp(const int &a,const int &b)
{
return a>b;
}
sort(vec.begin(),vec.end(),Comp) // 这样就降序排序。
#include
// 将元素翻转(在vector中,如果一个函数中需要两个迭代器,一般后一个都不包含.)
reverse(vec.begin(),vec.end());