본문 바로가기

프로그래밍/C++

[C++] 새로 알게 된 사실 몇 가지 (계속추가예정)

반응형

1. 전역배열을 선언하면 자동으로 0으로 초기화된다.

 

2. STL 관련 정의오류는 적절한 Container 조합을 썼는지 확인하자. 예를 들어, priority_queue의 Container<T>가 들어갈 인수 자리에 queue<T>를 넣으면 초기화 과정 중 begin 함수가 없어서 컴파일 오류가 발생한다.

 

3. algroithm 헤더 내 함수들과 내장 함수를 구분해 쓰자. 예를 들어 내장함수 qsort는 STL Container를 지원하지 않는다.

 

4. C++17부터 튜플을 다음처럼 쓸 수 있다.

auto [a, b, c] = make_tuple(1, 2, 3);

 

5. typedef tuple<int,int,int> Vector3 와 같은 표현으로 using Vector3 = tuple<int,int,int>가 있다.

 - 둘의 차이라면, using에서는 템플릿을 지원하지만 typedef에서는 지원하지 않는다.

template <typename T>
using Vector3 = tuple<T, T, T>;

 

6. 학창시절 배웠던 확률과 통계 과목 중 경우의 수 챕터를 열심히 헀다면, 누락이나 중복 없이 모든 경우를 고려하는 능력이 좋았을 것이다.

 

7. 학창시절 수학을 더 열심히 하지 않은 탓에 지금 문제를 푸는데 어려움이 있다.

 

8. C++에서 함수 포인터 배열을 사용하려면 아래처럼..

// function pointer
<return-type> (*<variable-name>)() = &<function-name>;
// example
int (*func)() = &main;

// function pointer array
<return-type> (*<variable-name>[<size>])() = { &<function-name>, ... };
//example
void (deque<int, allocator<int>>:: * func[2])() = { &deque<int>::pop_front, &deque<int>::pop_back };
// usage
deque<int> deq;
(deq.*func[0])(); // pop_front
(deq.*func[1])(); // pop_back

 

9. strtok으로 문자열을 특정 토큰 기준으로 나눌 수 있다.

http://www.cplusplus.com/reference/cstring/strtok/

 

10. %10d와 같은 것을 iostream에서 하고 싶다면,

https://kcoder.tistory.com/entry/C-cout-%EC%9D%98-%EB%AA%A8%EB%93%A0-%EA%B2%83-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%86%8C%EC%88%98%EC%A0%90-%EC%B6%9C%EB%A0%A5%EC%96%91%EC%8B%9D

 

[C++] cout 의 모든 것. [setf(), 조정자, 형식변환]

cout 소수점 출력하기, cout 16진수 출력하기, cout 공백 조절하기, cout setf() 사용하기, cout 조정자 사용하기 cout 소수점 출력하기, cout 16진수 출력하기, cout 공백 조절하기, cout setf() 사용하기..

kcoder.tistory.com

#include <iomanip>
cout << setw(10) << 123456 << endl;
반응형