赞
踩
以下均不为完整程序
map:
#include<map>
map<int,int>::iterator it,it1,it2; //定义迭代器
map<int,int>dt; //定义
mp[0]=12; //边用边创建 也可以使用 pair来创建
mp.erase(k); //删除某个键值对应的
dt.erase(dt.begin(),dt.end());// 清空 *** 自己想出来的
for(it=mp.begin();it!=mp.end();it++){ //迭代
i=it->first; // 取得key值
j=conn[i];
it1=dt.find(i*Max+j); //通过value值来寻找,应该是第一个位置的迭代器
if(it1!=dt.end() && it1->second<mx){
k=i;
mx=it1->second; //取得value值
}
}
如果要通过 key值寻找则用 count。
还有插入 mp.insert (map<int,int>::value_type(2,9)); 好像也可以用pair
list:
#include <list>
list<int> dt;
list<int>::iterator it;
dt.clear();
dt.push_back(num);
dt.sort(); //默认是从小到大,如果是自己的类型,需要
//重载小于符号。
//coll.sort(greater<int>());
………………
//coll.sort(less<int>());
now=dt.front();
dt.pop_front();
dt.pop_back();
for(it=dt.begin();it!=dt.end();it++){
j=*it;
}
先序队列,队列,栈
此处参考
http://blog.163.com/jackie_howe/blog/static/19949134720111144714342/
priority_queue<int> q1;
priority_queue< pair<int, int> > q2; // 注意在两个尖括号之间一定要留空格。
priority_queue<int, vector<int>, greater<int> > q3; // 定义小的先出队 ,容器默认使用 vector容器
priority_queue 的基本操作与queue 相同。
主要说一下算子的问题 默认为less算子,就是说 比较 x (算子) y ,结果为真,那么y先出去,在队头。
然后可以重载运算符。
queue 模板类的定义在<queue>头文件中。
与stack 模板类很相似,queue 模板类也需要两个模板参数,一个是元素类型,一个容器类
型,元素类型是必要的,容器类型是可选的,默认为deque 类型。
定义queue 对象的示例代码如下:
queue<int> q1;
queue<double> q2;
queue 的基本操作有:
入队,如例:q.push(x); 将x 接到队列的末端。
出队,如例:q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
访问队首元素,如例:q.front(),即最早被压入队列的元素。
访问队尾元素,如例:q.back(),即最后被压入队列的元素。
判断队列空,如例:q.empty(),当队列空时,返回true。
访问队列中的元素个数,如例:q.size()
stack 模板类的定义在<stack>头文件中。
stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要
的,在不指定容器类型时,默认的容器类型为deque。
定义stack 对象的示例代码如下:
stack<int> s1;
stack<string> s2;
stack 的基本操作有:
入栈,如例:s.push(x);
出栈,如例:s.pop();注意,出栈操作只是删除栈顶元素,并不返回该元素。
访问栈顶,如例:s.top()
判断栈空,如例:s.empty(),当栈空时,返回true。
访问栈中的元素个数,如例:s.size()。
全排列
next_permutation 是从最右开始不断向左
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。