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

1.multiset/set的使用

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

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

2.逆向迭代器

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

3.SStream流读写string

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

4.连接表创建图


vector 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 C;  
};
map A;
若有一map名为m,m->first表示左边[]中元素值,m->second表示对应的右边的值。若要访问C则需,A->second.C,则      A->second.C->first表示C的左边,A->second.C->second表示C的右边。

6.memset函数的使用

#include //#include 
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;
}



转载于:https://www.cnblogs.com/Radium1209/p/10415394.html

你可能感兴趣的:(寒假第二周训练——STL笔记及杂记)