STL
Posted streamazure
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL相关的知识,希望对你有一定的参考价值。
map.count()
map.count(Key),在map中检索索引Key,若其存在,返回true,否则返回false
注意仅能检索索引,不能检索值
#include<map>
map<int,int> m;
if(m.count(key)){...;}
#include<map>
#include<iostream>
using namespace std;
int main()
{
map<char,int> m;
m[‘a‘] = 1;
m[‘b‘] = 2;
if (m.count(‘a‘)) cout << m[‘a‘] << endl;
if (m.count(‘c‘)) cout << m[‘c‘] << endl;
if (m.count (1) ) cout<<3<<endl;
return 0;
}
//仅能执行第一条if语句,打印结果为1
inserter()
与其它函数结合使用,使元素插入到该函数参数迭代器所指向的元素之前
#include<iterator>
iterator(a,a.begin());
//参数分别为 容器名,指向给定容器的迭代器
//返回值为迭代器
set_union()
求并集操作
可以将两个容器a,b合并到一个容器c中,并自动去重
容器可以是集合也可以是数组等。
注意:容器a,b必须有序
#include<iterator>
#include<algorithm>
set_union(a.begin(),a.end(),b.begin(),b.end(),inserter(c,c.begin()));
#include<iterator>
#include<algorithm>
#include<set>
#include<iostream>
using namespace std;
int main()
{
set<int> a;
set<int> b;
set<int> c;
for (int i = 1;i <= 5;i++) a.insert(i);
//a={1,2,3,4,5}
for (int i = 3;i <= 7;i++) b.insert(i);
//b={3,4,5,6,7}
set_union(a.begin(), a.end(), b.begin(), b.end(), inserter(c, c.begin()));
set<int>::iterator it;
for (it = c.begin();it != c.end();it++) {
cout << *it << " ";
}
//c={1,2,3,4,5,6,7}
return 0;
}
打印容器c,结果为1 2 3 4 5 6 7
set_intersection()
求交集操作
基本同set_union()
#include<iterator>
#include<algorithm>
set_intersection(a.begin(),a.end(),b.begin(),b.end(),inserter(c,c.begin()));
#include<iterator>
#include<algorithm>
#include<set>
#include<iostream>
using namespace std;
int main()
{
set<int> a;
set<int> b;
set<int> c;
for (int i = 1;i <= 5;i++) a.insert(i);
//a={1,2,3,4,5}
for (int i = 3;i <= 7;i++) b.insert(i);
//b={3,4,5,6,7}
set_intersection(a.begin(), a.end(), b.begin(), b.end(), inserter(c, c.begin()));
set<int>::iterator it;
for (it = c.begin();it != c.end();it++) {
cout << *it << " ";
}
//c={3,4,5}
return 0;
}
打印容器c,结果为3 4 5
以上是关于STL的主要内容,如果未能解决你的问题,请参考以下文章