寒假第二周训练——STL笔记及杂记

1.multiset/set的使用

#include <set>
multiset<int> s; //set<int> s;
区别:multiset元素可重复,set不可重复,其内容有序。

set常见成员列表:
begin()--返回指向第一个元素的迭代器
clear()--清除所有元素
count()--返回某个值元素的个数
empty()--如果集合为空,返回true
end()--返回指向最后一个元素的迭代器
erase()--删除集合中的元素
find()--返回一个指向被查找到元素的迭代
insert()--在集合中插入元素
size()--集合中元素的数目

2.逆向迭代器

multiset<int>::reverse_iterator it=s.rbegin();  
//逆向迭代器   
与正向迭代器区别:iterator前多了 reverse_ ,begin前多了 r

3.SStream流读写string

#include <sstream>  
//包含stringstream的头文件 
stringstream ss(s);
//假设已经存在字符串s
while(ss >> buf)  
    dict.insert(buf);
//读出每个字符串并加入dict 

4.连接表创建图


vector<int> G[MAX_N];
cin >> s >> t;
G[s].push_back(t);
//s向t连边
//G[t].push_back(s);
//t向s连边,无向图 
若边上有属性可创建结构体, 切记无向图需连两边

5.利用map分层记录

struct B
{  
    map<string,string> C;  
};
map<string,B> A;
若有一map名为m,m->first表示左边[]中元素值,m->second表示对应的右边的值。若要访问C则需,A->second.C,则      A->second.C->first表示C的左边,A->second.C->second表示C的右边。

6.memset函数的使用

#include <cstring>//#include <string.h>
memset(a,0,sizeof(a));
//可初始化一维二维数组,不可初始化vector 

注意:vector是无法用memset初始化的!!

7.c++文件的使用


freopen("in.txt","r",stdin);  
freopen("out.txt","w",stdout);  

8.c++重载运算符


bool friend operator<(node a1,node a2)
{
	return a1.step>a2.step;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值