vector (컨테이너) 내의 데이터들을 정렬한다.
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
template<class T>
void display(string str, vector<T> vec);
int main()
{
unsigned int i=0;
// int 원본
vector<int> vec;
for(i=0;i<5;i++)
{
vec.push_back(i*2);
}
for(i=0;i<5;i++)
{
vec.push_back(i*2+1);
}
display("int 원본", vec);
// int 순방향 정렬
sort(vec.begin(),vec.end());
display("int 순방향 정렬", vec);
// int 역방향 정렬
sort(vec.begin(),vec.end(), greater<int>());
display("int 역방향 정렬", vec);
// string 원본
vector<string> vec2;
string str;
for(i=0;i<5;i++)
{
str = (char)(i*2 + 66);
vec2.push_back(str);
}
for(i=0;i<5;i++)
{
str = (char)(i*2 + 65);
vec2.push_back(str);
}
display("string 원본", vec2);
// string 순뱡항 정렬
sort(vec2.begin(),vec2.end());
display("string 순뱡항 정렬", vec2);
// string 역방향 정렬
sort(vec2.begin(),vec2.end(), greater<string>());
display("string 역방향 정렬", vec2);
return 0;
}
// vector<int>, vector<string> 구분없이 사용하기 위해 template 처리
template<class T>
void display(string str, vector<T> vec)
{
cout << str << " = ( ";
for(auto v:vec)
{
cout << v << " ";
}
cout << ")" << endl;
}