문자로 C++에서 2D 벡터를 채우려 고합니다. 그러나이 코드를 실행하면 한 줄 문자 (*..
)로 끝납니다.C에서 2D 벡터 채우기
어떻게이 같은 2D 벡터를 채울 수 : 각 삽입 후 rowV
을 취소해야 *.* .**
#include <iostream>
#include <vector>
int main()
{
std::vector<std::vector<char> > vec2D;
std::vector<char> rowV;
unsigned int row=2;
unsigned int col=3;
char c;
unsigned int temp=0;
while(temp!=col)
{
while(rowV.size()!=row)
{
std::cin>>c;
rowV.push_back(c);
}
vec2D.push_back(rowV);
++temp;
}
return 0;
}
재미 있고 관련성없는 재미있는 사실 :'std :: vector> '는 2D 벡터를 만들지 않습니다. 그것은 '벡터'의'벡터 '를 만들고, 이것은 약간의 불쾌한 성능 문제 (검색 용어 : "포인터 추적", "공간 지역성")을 가져옵니다. 은 잔인하게 이해하고 사용하기 쉽기 때문에 '벡터'의 '벡터'로 시작하십시오. 그러나 프로파일 링이 프로그램이 너무 느리다는 사실을 명심해야합니다. –
user4581301