常见STL库的使用

常见STL库的使用

0x01 vector

vector动态数组,可定义任意类型变量

vector<typename> name;

方式一: 构造一个某类型的空容器:

vector<数据类型> 函数名; 初始化为空。

vector<int> v1; //构造int类型的空容器

方式二: 构造一个含有n个val的某类型容器:

vector<数据类型> 函数名(a,b).定义a个空间,都初始化为b。

vector<int> v2(10, 2); //构造含有10个2的int类型容器

方式三: 拷贝构造某类型容器的复制品:
vector<数据类型> 函数名1(函数名2),把动态数据2复制给动态数组1

vector<int> v3(v2); //拷贝构造int类型的v2容器的复制品

方式四: 使用迭代器拷贝构造某一段内容:
vector<数据类型> 函数名1(函数名2.begin(),函数名2.end())把动态数组2复制给动态数组1。

vector<int> v4(v2.begin(), v2.end()); //使用迭代器拷贝构造v2容器的某一段内容

遍历


#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
	vector<int> v(10, 2);
	//正向迭代器遍历容器
	vector<int>::iterator it = v.begin();
	while (it != v.end())
	{
		cout << *it << " ";
		it++;
	}
	cout << endl;
	return 0;
}

其余常见操作

1 size(),其表示为当前容器中的数据个数

cout << v.size() << endl;

2 push_back(), 向后插入元素

a.push_back(x);

3 访问
back 返回容器中最后的一个元素的引用
front 返回容器中第一个元素的引用

0x02 map

可以在内部套任意容器
map ->有序,每次操作O(logN)
unordered_map ->无序,每次操作O(1)

map<type,type> name;
或者
map<map<type,type>,int> name;

0x03 set

set ->有序,每次操作O(logN)
unordered_set ->无序,每次操作O(1)

set<type> name;
use.find(x):find 是查找 x 是否存在。
use.count(x):返回元素 x 的数量。(有为 1,没有为 0)
use.size():容器内元素数量
use.insert(x):插入元素 x
use.erase(x):将值为 x 的元素删除。
use.clear():清空 unordered_set
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值