티스토리 뷰

프로그래밍/C++

벡터에 문자열 여러개

에어버스 2022. 7. 15. 16:18

벡터에 여러 문자열을 저장할때 배열을 사용하면 컴파일 에러난다.

추가>>>>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CString str;
std::vector<CString*> v;
CString s[4= {"1""2""3""4"}, 
    t[4= {"11""22""33""44"};
 
v.push_back(s);
v.push_back(t);
std::vector<CString*>::iterator it = v.begin();
str = (*it)[0]; // 1
str = (*it)[1]; // 2
str = (*it)[2]; // 3
str = (*it)[3]; // 4
 
it++;
 
str = (*it)[0]; // 11
str = (*it)[1]; // 22
str = (*it)[2]; // 33
str = (*it)[3]; // 44
cs

=======


std::vector< std::tuple<CString, CString, CString, CString, CString, CString, CString, CString>> v; // 너무 길다.
std::vector<CString[8]> v; // 벡터에는 배열을 사용할 수 없다고 컴파일에서 에러난다.
std::vector<std::vector<CString>> v; // OK

값을 읽을때는
std::vector<CSting> str = v.at(0); // v[0];
CString str1 = str->at(0); // str[0];

값을 저장할때는
v[0][0] = TEXT("123");

iterator 를 이용한 값 읽기
CString str3 = it->at(0); // (*it)[0];

iterator 를 이용한 값 저장
it->at(2) = TEXT("123"); // (*it)[2] 도 가능

사용법을 더 확인해야 함.

주의사항 : 
배열은 요소값으로 데이타 갯수를 제한할 수 있지만, 벡터는 제한할 수 없는 문제가 있다. (std::venter<int> a(5) 처럼 크기 지정 가능한듯... 확인해보기)

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31