设为首页 加入收藏

TOP

C++|STL(一)
2023-07-23 13:30:04 】 浏览:77
Tags:STL

关于STL容器的简单总结

1、结构体中重载运算符的示例

//结构体小于符号的重载
struct buf { 
   int a,b;
   bool operator < (const buf& c1) const {  //注意:第二个const一定不能少
   return a<c1.a;
   }
};
//或
struct foo {
    int a,b;
};
bool operator < (const foo &x, const foo &y)
{return x.a < y.a;}

2、队列(queue)

#include <queue>
queue<int>a;    //定义 
a.push(x);      //压入 
a.pop();      //弹出 
a.size();   //取大小 
a.front();    //访问队首元素 
a.back();     //访问队尾元素 
a.empty();    //判断队列是否为空

3、优先队列(priority_queue)

#include <queue>
priority_queue<int,vector<int>,greater<int> > c;      //定义从小到大的int类型的优先队列
priority_queue<int> c;                                //定义从大到小的int类型的优先队列 
c.push();        //压入 
c.pop();         //弹出队首元素 
c.top();         //访问队首元素 
c.empty();       //判断队列是否为空
//如是结构体必须重载'<' 

4、双端队列(deque)

#include <deque>
deque <int> b;    //定义双端队列 
b.push_front(x); //在队首压入元素 
b.push_back(x);  //在队尾压入元素 
b.pop_front();   //弹出队首元素 
b.pop_back();    //弹出队尾元素 
b.size();        //取大小 
b.back();        //访问队尾元素
b.front();       //访问队首元素 
b.empty();       //判断队列是否为空
//可用[]访问

5、栈(stack)

#include <stack>
stack<int> d;    //定义 
d.push(x);       //压入元素 
d.pop();         //弹出栈顶元素 
d.top();         //访问栈顶元素 
d.size();        //取大小 
d.empty();       //判断栈是否为空

6、 集合(set)

#include <set>
set<int> e;
e.insert(i);     //插入元素 
e.erase(i);      //删除值为i的元素 
e.count(i);      //查看值为i的元素是否存在 
e.empty();       //判断set是否为空
set<int>:: iterator rit;        //定义迭代器 
rit = (e.insert(j)).first    //返回插入后元素对应的迭代器
rit=e.find(i);       //返回值为i的元素的迭代器,如果没找到返回的是e.end()
rit=e.lower_bound(i)  //返回值大于等于i的第一个元素的迭代器, 如果没有大于等于i的元素返回e.end()
rit=e.upper_bound(i)  //返回值大于i的第一个元素的迭代器, 如果没有大于i的元素返回e.end()
for(rit=e.begin();rit!=e.end();rit++)   //正序遍历,值为*rit
set<int>::reverse_iterator rit;         //反向遍历的迭代器 
for(rit=e.rbegin();rit!=e.rend();rit++) //反向遍历必须这么写 
注: 不能直接写e.erase(e.rbegin());
//如使用结构体,必须重载< 或写仿函数

7、可重集(multiset)

#include <set>
multiset<int> e;
e.insert(i);     //插入元素 
e.erase(i);      //删除所有值为i的元素 
e.erase(e.find(i)) //删除一个值为i的元素
e.count(i);      //统计值为i的元素的数量
e.empty();       //判断multiset是否为空
multiset<int>:: iterator rit;        //定义迭代器 
rit = (e.insert(j)).first    //返回插入后元素对应的迭代器
rit=e.find(i);       //返回第一个值为i的元素的迭代器,
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇【VS Code+Qt6】拖放操作 下一篇[Qt基础内容-08] Qt中MVC的M(Mod..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目