1 분 소요

● 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을 복사해서 생성

댓글남기기