728x90
반응형
sort
1. 표준
c++ 11 에서 나옴
2. 시간 복잡도
O(N·log(N))
3. 예제 코드
비교 연산자가 > 이면 큰 값부터 정렬
비교 연산자가 < 이면 작 은 값 부터 정렬
#include <algorithm>
#include <functional>
#include <array>
#include <iostream>
#include <string_view>
int main()
{
std::array<int, 10> s = {5, 7, 4, 2, 8, 6, 1, 9, 0, 3};
auto print = [&s](std::string_view const rem) {
for (auto a : s) {
std::cout << a << ' ';
}
std::cout << ": " << rem << '\n';
};
std::sort(s.begin(), s.end());
print("sorted with the default operator<");
std::sort(s.begin(), s.end(), std::greater<int>());
print("sorted with the standard library compare function object");
struct {
bool operator()(int a, int b) const { return a < b; }
} customLess;
std::sort(s.begin(), s.end(), customLess);
print("sorted with a custom function object");
std::sort(s.begin(), s.end(), [](int a, int b) {
return a > b;
});
print("sorted with a lambda expression");
}
4. 결과
0 1 2 3 4 5 6 7 8 9 : sorted with the default operator<
9 8 7 6 5 4 3 2 1 0 : sorted with the standard library compare function object
0 1 2 3 4 5 6 7 8 9 : sorted with a custom function object
9 8 7 6 5 4 3 2 1 0 : sorted with a lambda expression
int to string
int num1 = 10;
float num2 = 22.1f;
//to_string(int) -> int.
string str1 = to_string(num1);
char to string
#include <iostream>
#include <string>
int main()
{
char c = 'A';
// using string class fill constructor
std::string s(1, c);
std::cout << s << std::endl;
return 0;
}
string to char
std::string str = "hello";
std::vector<char> data(str.begin(), str.end());
MAX , MIN
maxium = std::max(k[0], k[1]));
minium = std::min(k[0], k[1]));
key , value sorting
std::vector<std::pair<int,int>> v_ans;
std::sort(v_ans.begin(), v_ans.end(), [](std::pair<int, int> a, std::pair<int,int> b) {
return a.second < b.second;
});
최대값 및 index 구하기
- max_element의 결과로 최대값을 가리키는 반복자를 반환한다. 따라서 이를 * 연산자를 사용하면 최대값을 구할 수 있다.
- 또한, vector는 일련의 반복자로 구성되어 있으므로 최대값을 가리키는 반복자를 맨 처음을 가리키는 v.begin()만큼 빼준다면 인덱스 값을 구할 수 있다.
int max = *max_element(v.begin(), v.end());
cout << "가장 큰 수 : " << max << "\n";
int max_index = max_element(v.begin(), v.end()) - v.begin();
cout << "가장 큰 수의 인덱스 : " << max_index;
cout << "\n==============================\n";
728x90
반응형
'프로그래밍 > 코테' 카테고리의 다른 글
[코테] 주의 사항 (0) | 2022.11.05 |
---|---|
[프로그래머스] 소수 찾기Level 2 (0) | 2022.09.05 |
[프로그래머스] 프린터 Lv. 2 (0) | 2022.07.18 |
[프로그래머스] 기능개발 Lv. 2 (0) | 2022.07.03 |
[프로그래머스] 베스트앨범 Lv. 3 (0) | 2022.07.01 |