欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

常用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;
相关标签: STL 算法