觉得vector用处蛮多的,所以特地稍微总结一下

1、基本操作
((1)头文件#include< vector >.
(2)创建vector对象,vector< int > vec;
(3)尾部插入数字:vec.push_back(a);
(4)使用下标访问元素,cout<< vec[0] << endl;记住下标是从0开始的。
(5)使用迭代器访问元素.

vector<int>::iterator it;
for(it=vec.begin();it!=vec.end();it++)cout<<*it<<endl;

(6)插入元素: vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;
(7)删除元素: vec.erase(vec.begin()+2);删除第3个元素
vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始
(8)向量大小:vec.size();
(9)清空:vec.clear();

2、函数
(1) 使用reverse将元素翻转:需要头文件#include< algorithm >
reverse(vec.begin(),vec.end());将元素翻转(在vector中,如果一个函数中需要两个迭代器,
一般后一个都不包含.)
(2)使用sort排序:需要头文件#include< algorithm >,
sort(vec.begin(),vec.end());(默认是按升序排列,即从小到大).
可以通过重写排序比较函数按照降序比较,如下:
定义排序比较函数:
bool Comp(const int &a,const int &b)
{
return a>b;
}
调用时:sort(vec.begin(),vec.end(),Comp),这样就降序排序。

3、vector的创建
vector< int> A; //创建一个空的的容器
vector< int > B(10,100); //创建一个个元素,每个元素值为
vector< int > C(B.begin(),B.end()); //使用迭代器,可以取部分元素创建一个新的容器
vector< int > D(C); //复制构造函数,创建一个完全一样的容器

4、find函数怎么用于vector容器

#include <vector>
#include <algorithm>
#include <iostream>int main( )
{using namespace std;vector<int> L;L.push_back( 1 );L.push_back( 2 );L.push_back( 3 );L.push_back( 4 );L.push_back( 5 );vector<int>::iterator result = find( L.begin( ), L.end( ), 3 ); //查找3if ( result == L.end( ) ) //没找到cout << "No" << endl;else //找到cout << "Yes" << endl;}

#include<vector>  #include<iostream>  using namespace std;  int main()  {  vector<int> v(3);  v[0]=2; //v[0]是第0个元素 v[1]=7;  v[2]=9;  v.insert(v.begin(),8);//在最前面插入新元素。  v.insert(v.begin()+2,1);//在迭代器中第二个元素前插入新元素  v.insert(v.end(),3);//在向量末尾追加新元素。  v.insert(v.end(),4,1);//在尾部插入4个1int a[] = {1,2,3,4};v.insert(v.end(),a[1],a[3]);//在尾部插入a[1]个a[3]vector<int>::iterator it;  for(it=v.begin(); it!=v.end();it++)  {  cout<<*it<<" ";  }  cout<<endl;return 0;}  //8 2 1 7 9 3 1 1 1 1 4 4//请按任意键继续. . .

5、lower_bound()用于vector函数

查找获得迭代器:

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> v;
int main()
{  for (int i = 1; i < 4; i++)  v.push_back(2 * i);//注意此时v中的元素本身就是有序的  vector<int>::iterator it = lower_bound(v.begin(), v.end(), 3);  cout << *it << endl;  return 0;
}  

得到查找数的下标:

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> v;
int main()
{  for (int i = 1; i < 4; i++)  v.push_back(2 * i);//注意此时v中的元素本身就是有序的  //vector<int>::iterator it = lower_bound(v.begin(), v.end(), 3);  int pos = lower_bound(v.begin(), v.end(), 3)-v.begin();  cout << pos<< endl;  return 0;
}

vector函数总结相关推荐

  1. stl vector 函数_在C ++ STL中使用vector :: begin()和vector :: end()函数打印矢量的所有元素...

    stl vector 函数 打印向量的所有元素 (Printing all elements of a vector) To print all elements of a vector, we ca ...

  2. stl vector 函数_vector :: at()函数以及C ++ STL中的示例

    stl vector 函数 C ++ vector :: at()函数 (C++ vector::at() function) vector::at() is a library function o ...

  3. stl vector 函数_vector :: crend()函数以及C ++ STL中的示例

    stl vector 函数 C ++ vector :: crend()函数 (C++ vector::crend() function) vector::crend() is a library f ...

  4. stl vector 函数_vector :: pop_back()函数以及C ++ STL中的示例

    stl vector 函数 C ++ vector :: pop_back()函数 (C++ vector::pop_back() function) vector::pop_back() is a ...

  5. stl vector 函数_vector :: push_back()函数,以及C ++ STL中的示例

    stl vector 函数 C ++ vector :: push_back()函数 (C++ vector::push_back() function) vector::push_back() is ...

  6. stl vector 函数_vector :: back()函数以及C ++ STL中的示例

    stl vector 函数 C ++ vector :: back()函数 (C++ vector::back() function) vector::back() is a library func ...

  7. stl vector 函数_vector :: clear()函数,以及C ++ STL中的示例

    stl vector 函数 C ++ vector :: clear()函数 (C++ vector::clear() function) vector::clear() is a library f ...

  8. stl vector 函数_vector :: crbegin()函数,以及C ++ STL中的示例

    stl vector 函数 C ++ vector :: crbegin()函数 (C++ vector::crbegin() function) vector::crbegin() is a lib ...

  9. stl vector 函数_vector :: front()函数以及C ++ STL中的示例

    stl vector 函数 C ++ vector :: front()函数 (C++ vector::front() function) vector::front() is a library f ...

  10. R语言使用as.vector函数将矩阵数据转化为向量数据(matrix to vector)

    R语言使用as.vector函数将矩阵数据转化为向量数据(matrix to vector) 目录 R语言使用as.vector函数将矩阵数据转化为向量数据(matrix to vector)

最新文章

  1. MLIR: 编译器基础架构重定义
  2. 在Ubuntu 12.04 桌面上设置启动器(快捷方式)
  3. 学习超大神经网络,CPU超越V100 GPU,靠的居然是哈希?
  4. 正则表达式过滤HTML危险脚本
  5. JavaSE 和 JavaEE 的关系
  6. javascript---parseInt(08)或parseInt(09)转换返回0的解决办法
  7. html-下拉框、文本域、文件域
  8. 面向对象编程的两顶帽子
  9. 【CVPR2022】论文列表与下载——PartThree
  10. 1205 Lock wait timeout exceeded; try restarting transaction处理
  11. html 自适应 音乐播放器,mmPlayer:一款基于Vue的自适应Web在线音乐播放器
  12. Google Paly 开发者账号需要注意的小细节
  13. 最激励人心\作为一个程序员
  14. 树形结构数据, 已知某一子节点 ,一次向上获取所有父节点
  15. 前端与后台(学习自某B站Up主)
  16. 电子商务宝盒PRIMO
  17. Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇)
  18. watch的使用方法
  19. 【OpenCV】OpenCV介绍及C++环境配置
  20. Xcode 更改默认版本 xcode-select

热门文章

  1. 微信新版本文件乱保存自用解决方法
  2. u盘1kb快捷方式病毒修复_修复“无法为2097152KB对象堆保留足够的空间” JFrog Artifactory启动错误...
  3. 有哪些高质量的图片网站(社区)推荐?
  4. 计算机在运行表格的时候很慢,win7系统打开excel2007表格很慢的解决方法
  5. python练手项目pdf_一个不错的练手项目!
  6. 如何运用eclipse的编写Java程序
  7. 华硕笔记本的 Ubuntu 18.04 安装 nvidia 显卡驱动并支持 HDMI 输出
  8. 以结果为导向的项目管理
  9. 计算机的方差符号怎么输入,【2人回答】标准差的符号在电脑上怎么输入?-3D溜溜网...
  10. Lowe的SIFT(尺度不变特征变换)程序使用详细说明