实用函数
string.find()
用于搜索子串在母串中的位置,如果找到,返回子串首个元素的下标;如果找不到,返回s.npos
string s = "111177771111";
cout << s.find("7777");
//结果为: 4
string s = "111177771111";
if (s.find("222") == s.npos) cout << "Not found";
//结果为: Not found
priority_queue
priority_queue<int, vector<int>, less<int> > q;
//降序排列
priority_queue<int, vector<int>, greater<int> > q;
//升序排列
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