알고리즘 문제를 풀다 런타임에러가 나서 고민하다 질문에 대한 답변으로 깨달아서 간단하게 정리하려고한다
string 이란 int a[4] 같은 정적 크기를 가진 배열이 아니다
동적이니 string 은 사실상 백터라고 보면 된다
따라서 string 변수만 선언하고 초기화를 안한채로 아래처럼 사용하면 잘못된 코드이다
string ori;
string s;
cin >> s;
for(int i=0; i<s.size(); i++)
ori[i] = s[i]; // 잘못사용한 경우
string은 동적배열 벡터이므로, 이미 크기가 할당된 정적 배열이 아니므로 빈 string의 인덱스로 넣으면 안된다
벡터에서 삽입하듯 ori.push_back(s[i]) 를 사용해서 ori 문자열을 만들어주자
'C++ > 이론 및 용어' 카테고리의 다른 글
너무 큰 크기의 배열이 선언되면 실행되지 않는다 (0) | 2022.08.05 |
---|---|
iterator 반복자 (0) | 2022.06.08 |
[c++] namespace (0) | 2022.06.07 |
댓글