깡뇽

[4] String & Vector 공부 본문

Algorithm/Algorithm-Log

[4] String & Vector 공부

깡뇽 2024. 5. 16. 22:11
반응형

String 스트링

char를 사용해 문자열을 표현하려면, char str[100]; 선언 후 문자열 끝에 null 문자('\0')가 있어야 한다.

 

C++ 에서는 #include <string> 헤더를 사용해서 string을 다양하게 활용 가능하다.

string s = "string"; 과 같이 타입으로 선언 가능하다.

- 길이 : s.length()

- 비교 : strcmp( 문자열1, 문자열2) 

             -> 동일하면 0

             -> 다르면 -1 (문자열1이 문자열2보다 사전순으로 앞) OR 1 (문자열1이 문자열2보다 사전순으로 뒤)

- 결합 : strcat( 문자열1, 문자열2 ) 

             -> 문자열2가 문자열1에 결합

             * 결합에 += 연산자를 사용할 수 있음

 

+) #define _CRT_SECURE_NO_WARNING

 To disable deprecation, use _CRT_SECURE_NO_WARNINGS.

 

- 복사 : strcpy( 복사하고자 하는 위치, 복사하려고 하는 문자열 )

- 부분 복사 : strncpy( 복사해서 저장할 위치, 복사하려는 위치, 복사하려는 구간 크기 )

- 부분 문자열 가져오기 : substr( 시작위치 index, 구간크기 index )

- 탐색 : s.find( 찾으려는 substring ) 

             -> substring이 발견된 첫 index 리턴

             -> 없으면 -1 OR string::nops 취급

 

+) string::nops : 스트링 못 찾았을 때

 

 

Vector 벡터

vector는 동적 배열처럼 사용 가능하며, #include <vector> 헤더를 사용해서 vector를 다양하게 활용 가능하다.

`vector<타입> 이름;`

 

vector<int> v;

- 삽입 : v.push_back(a)

- 크기 : v.size()

- 시작 : v.begin() 

- 끝 : v.end() 

- 초기화 : v.clear()

 

< vector 내부 값 출력 방법 >

//방법1) 벡터 크기 활용
for(int i=0; i<v.size(); i++){
	cout << v[i] << ' ';
}

//방법2) iterator (포인터와 유사한 형태)
for(auto it=v.begin(); it!=v.end();it++){
	cout << *it << ' ';
}

 

< 2차원 백터 초기화 >

vector<vector<int>>vv; 
for (int i = 0; i < vv.size(); i++)
    vv[i].clear();

 

 

배열 초기화

#include <cstring> 헤더를 사용해서 memset 함수 사용 가능하다.

memset( 초기화 할 배열 이름(시작포인터), 0, sizeof(배열) )

int arr[10] = { 1,2,3,4, };

memset(arr, 0, sizeof(arr));
for (int i = 0; i < 4; i++) {
    cout << arr[i] << " "; // 0 0 0 0  출력
}

 

반응형

'Algorithm > Algorithm-Log' 카테고리의 다른 글

[3] 백트래킹 공부  (0) 2023.02.02
[2] 재귀함수 공부  (0) 2023.02.01
[1] Direct Access Table 공부  (0) 2023.02.01