vector函数总结
觉得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函数总结相关推荐
- 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 ...
- stl vector 函数_vector :: at()函数以及C ++ STL中的示例
stl vector 函数 C ++ vector :: at()函数 (C++ vector::at() function) vector::at() is a library function o ...
- stl vector 函数_vector :: crend()函数以及C ++ STL中的示例
stl vector 函数 C ++ vector :: crend()函数 (C++ vector::crend() function) vector::crend() is a library f ...
- stl vector 函数_vector :: pop_back()函数以及C ++ STL中的示例
stl vector 函数 C ++ vector :: pop_back()函数 (C++ vector::pop_back() function) vector::pop_back() is a ...
- stl vector 函数_vector :: push_back()函数,以及C ++ STL中的示例
stl vector 函数 C ++ vector :: push_back()函数 (C++ vector::push_back() function) vector::push_back() is ...
- stl vector 函数_vector :: back()函数以及C ++ STL中的示例
stl vector 函数 C ++ vector :: back()函数 (C++ vector::back() function) vector::back() is a library func ...
- stl vector 函数_vector :: clear()函数,以及C ++ STL中的示例
stl vector 函数 C ++ vector :: clear()函数 (C++ vector::clear() function) vector::clear() is a library f ...
- stl vector 函数_vector :: crbegin()函数,以及C ++ STL中的示例
stl vector 函数 C ++ vector :: crbegin()函数 (C++ vector::crbegin() function) vector::crbegin() is a lib ...
- stl vector 函数_vector :: front()函数以及C ++ STL中的示例
stl vector 函数 C ++ vector :: front()函数 (C++ vector::front() function) vector::front() is a library f ...
- R语言使用as.vector函数将矩阵数据转化为向量数据(matrix to vector)
R语言使用as.vector函数将矩阵数据转化为向量数据(matrix to vector) 目录 R语言使用as.vector函数将矩阵数据转化为向量数据(matrix to vector)
最新文章
- MLIR: 编译器基础架构重定义
- 在Ubuntu 12.04 桌面上设置启动器(快捷方式)
- 学习超大神经网络,CPU超越V100 GPU,靠的居然是哈希?
- 正则表达式过滤HTML危险脚本
- JavaSE 和 JavaEE 的关系
- javascript---parseInt(08)或parseInt(09)转换返回0的解决办法
- html-下拉框、文本域、文件域
- 面向对象编程的两顶帽子
- 【CVPR2022】论文列表与下载——PartThree
- 1205 Lock wait timeout exceeded; try restarting transaction处理
- html 自适应 音乐播放器,mmPlayer:一款基于Vue的自适应Web在线音乐播放器
- Google Paly 开发者账号需要注意的小细节
- 最激励人心\作为一个程序员
- 树形结构数据, 已知某一子节点 ,一次向上获取所有父节点
- 前端与后台(学习自某B站Up主)
- 电子商务宝盒PRIMO
- Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇)
- watch的使用方法
- 【OpenCV】OpenCV介绍及C++环境配置
- Xcode 更改默认版本 xcode-select
热门文章
- 微信新版本文件乱保存自用解决方法
- u盘1kb快捷方式病毒修复_修复“无法为2097152KB对象堆保留足够的空间” JFrog Artifactory启动错误...
- 有哪些高质量的图片网站(社区)推荐?
- 计算机在运行表格的时候很慢,win7系统打开excel2007表格很慢的解决方法
- python练手项目pdf_一个不错的练手项目!
- 如何运用eclipse的编写Java程序
- 华硕笔记本的 Ubuntu 18.04 安装 nvidia 显卡驱动并支持 HDMI 输出
- 以结果为导向的项目管理
- 计算机的方差符号怎么输入,【2人回答】标准差的符号在电脑上怎么输入?-3D溜溜网...
- Lowe的SIFT(尺度不变特征变换)程序使用详细说明