C++中STL运用

  • 利用set为vec数组去重

#include<set>
#include<vector>
#include<iostream>
using namespace std;


int main()
{
vector<int> vec;
vec = { 1, 2, 3, 4, 8, 9, 3, 2, 1, 0, 4, 8 };
set<int> st(vec.begin(), vec.end());
vec.assign(st.begin(), st.end());


vector<int>::iterator it;
for (it = vec.begin(); it != vec.end(); it++)
cout << *it<<endl;
return 0;

}
  • 利用vector为set排序

#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
#include<vector>
#include<set>
typedef long long LL;
vector<LL> v;
set<LL> s;
const int maxn=1000000000;
int main()
{
	int i,j,k;
	for(i=0; i<30&& pow(2,i)<=maxn; i++)
        for(j=0; j<20&& pow(2,i)*pow(3,j)<=maxn; j++)
            for(k=0; k<15 && pow(2,i)*pow(3,j)*pow(5,k)<=maxn; k++)
                    s.insert(pow(2,i)*pow(3,j)*pow(5,k));
    v.assign(s.begin(),s.end());
    //copy(s.begin(), s.end(), back_inserter(v));
    sort(v.begin(), v.end());
    printf("The 1500'th ugly number is %d.\n", v[1500-1]);
	return 0;
}
  • 优先队列使用

优先级队列区别于普通队列的一点是:优先级队列如果插入的节点是结构体类型,则要在结构体中重载比较操作符函数。

猜你喜欢

转载自blog.csdn.net/haohaoxuexilmy/article/details/81195667
今日推荐