最近学习C++容器,积累一下。下面介绍set和multiset,并使用sort对结构体进行排序。C++之路漫漫其修远兮!
一、对结构体进行排序
// sort_struct.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> #include <vector> #include <algorithm> using namespace std; typedef struct example { int elem1; char elem2; }example; bool comparison(example a,example b){ return a.elem1>b.elem1; } int main() { int N; cin>>N; vector<example> array(N); for(int i=0;i<N;i++) { cin>>array[i].elem1>>array[i].elem2; } sort(array.begin(),array.end(),comparison); for(int i=0;i<N;i++) { cout<<array[i].elem1<<" "<<array[i].elem2<<endl; } return 0; }
二、set运用
set,顾名思义,集合的概念,不允许重复的元素。multiset允许值重复,故可以来统计。其他用法两者一致。
// set.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "iostream" #include "string" #include "set" #include <algorithm> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { multiset<int> S; multiset<int>::iterator si; S.insert(4); S.insert(4); S.insert(3); for (si=S.begin(); si!=S.end(); si++) cout << *si << endl; cout<<S.count(1)<<endl; return 0; }