알고리즘용 c++ 문법 정리

임승섭·2024년 6월 28일
0

vector, arr

int arr[10000];
vector<int> v;

1. 초기화, 제거

fill(arr, arr + n, 0);	// 0으로 초기화 (bfs).
fill(v.begin(), v.end(), 0);

memset(arr, 0, sizeof(arr));	// memset. 빠름.

v.clear();	// 크기까지 없앤다.

// remove - size 변화 없음 (다른 값으로 대체)
remove(v.begin(), v.begin() + 10, 3);
// erase - size 변화 있음 (뒤에 있는거 당김)
v.erase(v.begin(), v.begin() + 10);

2. 정렬

sort(arr, arr + n);
sort(v.begin(), v.end());
sort(v.vegin(), v.end(), greator<int>());	// 내림차순

// 사용자 정의
bool compare(int, a, int b) {
	return a < b;
}
sort(v.begin(), v.end(), compare);

3. 최대 최소

*max_element(arr, arr + n);	// 최댓값
*max_element(v.begin(), v.end());
*min_element(arr, arr + n);	// 최솟값
*min_element(v.begin(), v.end());

string, char, int

1. 타입 변환

// char -> int
char ch = '1';
int i = ch - '0';

// int -> char
int i = 3;
char ch = i + '0';

// int -> string 
int i = 10010;
string s = to_string(i);

// string -> int 
string s = "10010";
int i = stoi(s);

// string -> *char
string s = "Hello World";
char *ch = s.c_str();
char ch2[100];
strcpy(ch2, s.c_str());

2. find

// 문자열 포함 여부 확인
string s1;
string s2;
if (s1.find(s2) == string::npos) { cout << "Not Found"; }
else { cout << "Found"; }

// 문자열 내부의 문자열 제거
while (s1.find(s2) != string::npos) {
	size_t pos = s1.find(s2);
    s1.erase(pos, s2.size());
}

0개의 댓글