아래와 같이 이미 초기화가 된 벡터에 resize 함수를 사용하면 열이 제대로 반영이 안되는걸 볼 수가 있는데 2번째 인자인 vector<int>(5)는 임시 객체이기 때문에 본 객체에 변경이 반영되지 않는다.
int main()
{
vector<vector<int>> a(7, vector<int>(6));
a.resize(5, vector<int>(5));
a[0].resize(5);
}
해결 할 수 있는 방법은 새로운 임시 객체를 만들어 재할당 하는것이다
vector<vector<int>> a(7, vector<int>(6));
a = vector<vector<int>>(7, vector<int>(5));
코딩테스트 때 유용하게 써먹자
'프로그래밍 언어 > C++' 카테고리의 다른 글
[C] main()과 return 사용 이유, 설명 (0) | 2024.06.24 |
---|---|
[C++] 원이 겹치는지에 대한 개인 코드 (0) | 2024.05.29 |
[C++] vector (벡터) 복사하기 (0) | 2024.05.07 |
[C/C++] 부동소수점의 비교연산 안되는 이유 및 오차범위 해결하기 (0) | 2024.05.03 |
[C++] 구조체 바이트 패딩 규칙 코드 (structure byte padding or align rule) (0) | 2024.04.24 |