头文件
#include#include #include
创建和初始化
参考文章:https://blog.csdn.net/sss_369/article/details/88360769
vector list1; //默认初始化,最常用vector list2(list);
vector ilist2 = ilist; //拷贝初始化vector list = {1,2,3.0,4,5,6,7};
vector list {1,2,3.0,4,5,6,7};//列表中元素的拷贝,VS2012 不支持vector list3(list.begin()+2, list.end()-1); //比较常用vector ilist4(7);//包含 7 个元素,每个元素进行缺省的值初始化,对于 int,也就是被赋值为 0vector ilist5(7,3);//指定值初始化,ilist5 被初始化为包含 7 个值为 3 的 intint a[] = {1, 2, 3, 4, 5};
vector t(a, a + sizeof(a) / sizeof(a[0]));//支持 VS2012
- 成员函数
push_back( ) 成员函数在向量的末尾插入值,如果有必要会扩展向量的大小。size( ) 函数显示向量的大小。begin( ) 函数返回一个指向向量开头的迭代器。end( ) 函数返回一个指向向量末尾的迭代器empty( ) 判断是否为空a.swap(b) a、b 向量交换
排序
排序函数返回值为 false,元素交换;参数必须加 const 修饰,否则报错
bool SortDimensions(const DimensionStruct &td1, const DimensionStruct &td2);
void ShowDim(DimensionStruct dim); sort(dimlist.begin(), dimlist.end(), SortDimensions);
默认排序算法
sort(a.begin(),a.end()); //对a中的从a.begin()(包括它)到a.end()(不包括它)的元素进行从小到大排列 reverse(a.begin(),a.end()); //对a中的从a.begin()(包括它)到a.end()(不包括它)的元素倒置,但不排列,如a中元素为1,3,2,4,倒置后为4,2,3,1
遍历
for_each(dimlist.begin(), dimlist.end(), ShowDim);
等价于
vector::iterator pr; for (pr = dimlist.begin(); pr != dimlist.end(); ++pr) ShowDim(*pr);
可以利用 copy 遍历输出 vector
copy(t.begin(), t.end(), ostream_iterator(cout, " "));
交换两个元素
iter_swap(t.begin(), t.begin() + i); swap(t[i], t[j]);
复制
把 t 中的从 t.begin()+1(包括它)到 t.end()(不包括它)的元素复制到 k 中,从 k.begin()的位置(包括它)开始复制,覆盖掉原有元素。k 的容量不能为 0,k.size()>t.size()时,只复制 t 的一部分,多余部分丢掉。
vectork(t.size() - 1); copy(t.begin() + 1, t.end(), k.begin());
查找
find(a.begin(),a.end(),10); //在a中的从a.begin()(包括它)到a.end()(不包括它)的元素中查找10,若存在返回其在向量中的位置
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)