6/5 string
● string::find / string::npos :
size_t find(cost string& str, size_T pos) const;
· str : 찾고자 하는 문자열.
· pos : 검색을 시작할 위치
· 문자열을 발견하면 해당 시작 인덱스를 리턴하고, 그렇지 않으면 npos 리턴.
string::npos란? size_type으로 정의된 특수값으로, string::npos는 -1값을 가지는 상수로 find() 함수 호출 시 찾는 문자열이 없을 때 반환된다.
find 함수가 해당 문자열의 시작 위치를 반환해주므로 문자열을 찾았다면 그 위치에서 문자열의 크기만큼 더한 위치에서부터 다시 해당 문자열을 탐색해 나간다.
c++에서는 char *보단 string형을 쓰는 경우가 편하기 때문에 <string> 헤더파일에 있는 find 와 npos를 사용.
str.find()는 문자열을 앞에서부터 검색하고, 해당 문자열이 시작되는 인덱스를 반환한다. 그리고 해당하는 문자열이 없으면 string::npos를 반환한다.
#include <iostream>
#include <string>
using namespace std;
int main(void) {
string s = "hello world!"
if (s.find("world") == string::npos) {
cout << "true";
}
return 0;
}
● vector container :
자동으로 메모리가 할당되는 배열이고 데이터 타입은 마음대로 넣을 수 있다. 스택과 비슷한 특징이 있어서 맨 뒤쪽에서 삽입과 삭제가 가능하다. 하지만 배열 기반이라서 삽입 삭제가 자주 일어나면 비효율적.
· vector의 사용
<vector> 헤더파일을 추가, vector의 선언은 vector<data type> [변수이름] ( ex) vector<int> v;)
· vector<int> v; -> 비어있는 vector v를 생성
· vector<int> v(n) : default (0)으로 초기화된 n개의 원소를 가지는 vector v 생성
· vector<int> v(m, n) : n으로 초기화된 m개의 원소를 가지는 vector v를 생성
· vector<int> v2(v1) : v2는 v1 vector을 복사해서 생성
댓글남기기