常用STL
程序员文章站
2022-03-06 11:48:44
...
1.描述
标准模板库:,是一个C++软件库,大量影响了C++标准程序库但并非是其的一部分。其中包含4个组件,分别为算法、容器、函数、迭代器。
2.vector(动态数组)
vector的声明
vector<T> v;
*其中T表示v中所存储元素的数据类型,可以是int float ,double,或者其他自定义类型,刚开始是空的。
在尾部插入元素
v.push_back(1);
赋值
v[0] = 1;
在尾部删除元素
v.pop_back();
清空
v.clear();
*只是清空vector,并不会清空开的内存。
初始化
int n = 10;
vector<int> v(n,1);
*第一个参数代表v的长度,第二个参数代表被初始化的数值。
二维动态数组的声明
vector<vector<int>> v;
3.set(集合)
set的声明
set<int> s;
*其中T表示s中所存储元素的数据类型,可以是int float ,double,或者其他自定义类型,刚开始是空的,里面的元素是有序且不重复的。
插入
s.insert(10);
删除
s.erase(10);
*如果这个集合中不存在这个元素,则什么都不做
判断元素是否存在
s.count(10);
*如果集合中存在我们要找的元素则返回1,否则返回0。
迭代器遍历访问
#include <iostream>
#include <set>
using namespace std;
int main(){
set<int> s;
s.insert(10);
s.insert(20);
s.insert(30);
s.insert(40);
s.insert(50);
for(set<int>::iterator it = s.begin();it != s.end();it++){
cout << *it << " ";
}
return 0;
}
*set是从小到大排好序的。
清空
s.clear();
*清空set,并且清空set所占用的内存。
获取元素的个数
s.size();
4.映射
map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一 种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的。
map的声明
map<int,int> m;
上一篇: 详解Angular DOM的更新机制
下一篇: jquery怎么取消css样式