c++ stl容器vector删除(erase),遍历等基本用法介绍及头文件
来源:互联网 发布:阿里云免费半年邀请码 编辑:程序博客网 时间:2024/06/05 19:26
本文导语: Vectors 包含着一系列连续存储的元素,其行为和数组类似。访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线性时间复杂度。 &...
Vectors 包含着一系列连续存储的元素,其行为和数组类似。访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线性时间复杂度。
c++ stl容器vector的头文件为: #include <vector>
c++ stl容器vector的成员函数介绍:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Constructors构造函数
Operators对vector进行赋值或比较
vector::assign()对Vector中的元素赋值
vector::at()返回指定位置的元素
vector::back()返回最末一个元素
vector::begin()返回第一个元素的迭代器
vector::capacity()返回vector所能容纳的元素数量(在不重新分配内存的情况下)
vector::clear()清空所有元素
vector::empty()判断Vector是否为空(返回true时为空)
vector::end()返回最末元素的迭代器(译注:实指向最末元素的下一个位置)
vector::erase()删除指定元素
vector::front()返回第一个元素
vector::get_allocator()返回vector的内存分配器
vector::insert()插入元素到Vector中
vector::max_size()返回Vector所能容纳元素的最大数量(上限)
vector::pop_back()移除最后一个元素
vector::push_back()在Vector最后添加一个元素
vector::rbegin()返回Vector尾部的逆迭代器
vector::rend()返回Vector起始的逆迭代器
vector::reserve()设置Vector最小的元素容纳数量
vector::resize()改变Vector元素数量的大小
vector::size()返回Vector元素数量的大小
vector::swap()交换两个Vector
c++ stl容器vector基本操作:
(1)包含头文件
1
#include<vector>
(2)创建vector对象:
1
vector<int> vec;
(3)尾部插入数字:
1
vec.push_back(a);
(4)使用下标访问元素:
1
cout<<vec[0]<<endl; //记住下标是从0开始的。
(5)使用迭代器遍历访问元素.
1
2
3
vector<int>::iterator it;
for(it=vec.begin();it!=vec.end();it++)
cout<<*it<<endl;
(6)插入元素:
1
vec.insert(vec.begin()+i,a); //在第i+1个元素前面插入a;
(7)删除元素:
1
vec.erase(vec.begin()+2); //删除第3个元素
1
vec.erase(vec.begin()+i,vec.end()+j); //删除区间[i,j-1];区间从0开始
(8)向量大小:
1
vec.size();
(9)清空:
1
vec.clear();
c++ stl容器vector用法详细代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include<stdio.h>
#include<algorithm>
#include<vector>
#include<iostream>
using namespace std;
typedef struct rect
{
int id;
int length;
int width;
//对于向量元素是结构体的,可在结构体内部定义比较函数,下面按照id,length,width升序排序。
bool operator< (const rect &a) const
{
if(id!=a.id)
return id<a.id;
else
{
if(length!=a.length)
return length<a.length;
else
return width<a.width;
}
}
}Rect;
int main()
{
vector<Rect> vec;
Rect rect;
rect.id=1;
rect.length=2;
rect.width=3;
vec.push_back(rect);
vector<Rect>::iterator it=vec.begin();
cout<<(*it).id<<' '<<(*it).length<<' '<<(*it).width<<endl;
return 0;
}
- c++ stl容器vector删除(erase),遍历等基本用法介绍及头文件
- c++ stl容器vector删除(erase),遍历等基本用法介绍及头文件
- c++ stl容器vector删除(erase),遍历等基本用法介绍及头文件
- c++ stl栈容器stack的pop(),push()等用法介绍及头文件
- c++ stl栈容器stack的pop(),push()等用法介绍及头文件
- c++ stl栈容器stack的pop(),push()等用法介绍及头文件
- c++ stl栈容器stack的pop(),push()等用法介绍及头文件
- c++ stl栈容器stack的pop(),push()等函数用法介绍及头文件
- STL vector等容器erase操作
- STL中容器使用erase()遍历删除
- STL容器的遍历删除操作erase
- vector::erase():容器删除
- c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例
- c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例
- vector.erase()用法介绍及注意事项;
- 剖析STL容器遍历删除时诡异的erase(iter++)
- STL容器遍历删除时诡异的erase
- STL容器遍历删除时诡异的erase
- 网络编程UDP
- 格式转换工具PDF Extractor SDK更新至v8.6.0.2911,修复对比度预处理过滤器
- 分享一个ds12c887的在1602上显示的52单片机的程序
- Excel使用VBA读取实时WebService股票数据
- jQuery基础事件-绑定事件
- c++ stl容器vector删除(erase),遍历等基本用法介绍及头文件
- vue axios全攻略
- SSM的项目搭建
- Unit 7
- nginx安装和使用
- Uncaught SyntaxError: Unexpected end of input 解决办法
- cout进行输出时为啥不加endl,也能立即显示输出内容?
- java操作xml之dom4j中的xpath实现用户登陆验证
- Pycharm创建Flask项目访问异常缓慢解决方法