본문 바로가기

Test Code

[STL] algorithm sort 정렬

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;

}