C++ stl汇总

简介: C++ stl汇总

vector
https://blog.csdn.net/weixin_42172261/article/details/86604772


map
https://blog.csdn.net/weixin_42172261/article/details/86621807


set
https://blog.csdn.net/weixin_42172261/article/details/86607669


迭代器
https://blog.csdn.net/weixin_42172261/article/details/86606300


stack
https://blog.csdn.net/weixin_42172261/article/details/88924120


queue
https://blog.csdn.net/weixin_42172261/article/details/88924295


priority_queue

#include <iostream>
#include <queue> 
#include <ctime>
#include <cstdlib>
#include <algorithm>
using namespace std;

int main(){
   
    //从大到小排列 
    priority_queue<int, vector<int>, less<int> > q;
    srand((unsigned)time(NULL));
    for (int i=1; i<=5; i++){
   
        int t = rand() % 20;
        q.push(t);
    }
    while (!q.empty()){
   
        int t = q.top();
        q.pop();
        cout<<t<<endl;
    }
    return 0;
}
//从小到大排列
priority_queue<int, vector<int>, greater<int> > q;
#include <iostream>
#include <queue> 
#include <ctime>
#include <cstdlib>
using namespace std;
//重载小于号,a和b越大的优先级越低,越排在后面 
struct Node{
   
    int a, b;
    bool operator<(const Node& t) const{
   
        if (a!=t.a)    return a>t.a;
        else    return b>t.b;
    }
};

int main(){
   
    priority_queue<Node> q;
    srand((unsigned)time(NULL));
    for (int i=1; i<=5; i++){
   
        Node t;
        t.a = rand() % 20;
        t.b = rand() % 20;
        q.push(t);
    }
    while (!q.empty()){
   
        Node t = q.top();
        q.pop();
        cout<<t.a<<" "<<t.b<<endl;
    }
    return 0;
}
//重载小于号,a和b越小的优先级越低,越排在后面 
struct Node{
   
    int a, b;
    bool operator<(const Node& t) const{
   
        if (a!=t.a)    return a<t.a;
        else    return b<t.b;
    }
};
相关文章
|
2月前
|
存储 算法 C++
C++ STL 初探:打开标准模板库的大门
C++ STL 初探:打开标准模板库的大门
112 10
|
4天前
|
算法 C语言 C++
【c++丨STL】list的使用
本文介绍了STL容器`list`的使用方法及其主要功能。`list`是一种双向链表结构,适用于频繁的插入和删除操作。文章详细讲解了`list`的构造函数、析构函数、赋值重载、迭代器、容量接口、元素访问接口、增删查改操作以及一些特有的操作接口如`splice`、`remove_if`、`unique`、`merge`、`sort`和`reverse`。通过示例代码,读者可以更好地理解如何使用这些接口。最后,作者总结了`list`的特点和适用场景,并预告了后续关于`list`模拟实现的文章。
20 7
|
21天前
|
存储 编译器 C语言
【c++丨STL】vector的使用
本文介绍了C++ STL中的`vector`容器,包括其基本概念、主要接口及其使用方法。`vector`是一种动态数组,能够根据需要自动调整大小,提供了丰富的操作接口,如增删查改等。文章详细解释了`vector`的构造函数、赋值运算符、容量接口、迭代器接口、元素访问接口以及一些常用的增删操作函数。最后,还展示了如何使用`vector`创建字符串数组,体现了`vector`在实际编程中的灵活性和实用性。
47 4
|
23天前
|
C语言 C++ 容器
【c++丨STL】string模拟实现(附源码)
本文详细介绍了如何模拟实现C++ STL中的`string`类,包括其构造函数、拷贝构造、赋值重载、析构函数等基本功能,以及字符串的插入、删除、查找、比较等操作。文章还展示了如何实现输入输出流操作符,使自定义的`string`类能够方便地与`cin`和`cout`配合使用。通过这些实现,读者不仅能加深对`string`类的理解,还能提升对C++编程技巧的掌握。
48 5
|
23天前
|
存储 编译器 C语言
【c++丨STL】string类的使用
本文介绍了C++中`string`类的基本概念及其主要接口。`string`类在C++标准库中扮演着重要角色,它提供了比C语言中字符串处理函数更丰富、安全和便捷的功能。文章详细讲解了`string`类的构造函数、赋值运算符、容量管理接口、元素访问及遍历方法、字符串修改操作、字符串运算接口、常量成员和非成员函数等内容。通过实例演示了如何使用这些接口进行字符串的创建、修改、查找和比较等操作,帮助读者更好地理解和掌握`string`类的应用。
36 2
|
28天前
|
存储 算法 Linux
【c++】STL简介
本文介绍了C++标准模板库(STL)的基本概念、组成部分及学习方法,强调了STL在提高编程效率和代码复用性方面的重要性。文章详细解析了STL的六大组件:容器、算法、迭代器、仿函数、配接器和空间配置器,并提出了学习STL的三个层次,旨在帮助读者深入理解和掌握STL。
46 0
|
7天前
|
存储 编译器 C语言
【c++丨STL】vector模拟实现
本文深入探讨了 `vector` 的底层实现原理,并尝试模拟实现其结构及常用接口。首先介绍了 `vector` 的底层是动态顺序表,使用三个迭代器(指针)来维护数组,分别为 `start`、`finish` 和 `end_of_storage`。接着详细讲解了如何实现 `vector` 的各种构造函数、析构函数、容量接口、迭代器接口、插入和删除操作等。最后提供了完整的模拟实现代码,帮助读者更好地理解和掌握 `vector` 的实现细节。
18 0
|
2月前
|
存储 搜索推荐 C++
【C++篇】深度剖析C++ STL:玩转 list 容器,解锁高效编程的秘密武器2
【C++篇】深度剖析C++ STL:玩转 list 容器,解锁高效编程的秘密武器
58 2
【C++篇】深度剖析C++ STL:玩转 list 容器,解锁高效编程的秘密武器2
|
2月前
|
存储 程序员 C++
C++常用基础知识—STL库(2)
C++常用基础知识—STL库(2)
79 5
|
2月前
|
存储 自然语言处理 程序员
C++常用基础知识—STL库(1)
C++常用基础知识—STL库(1)
70 1