C++

함수명 sort() 헤더 함수 설명 sort(strat, end) 함수를 사용해서 [start, end) 범위의 인자를 오름차순으로 정렬할 수 있다. 퀵정렬 기반이므로 시간복잡도는 O(N*logN)이다. 내림차순으로 정렬하고 싶다면, sort(strat, end, greater())를 사용하면 된다. bool 형의 compare 함수를 만들어서 정렬에 반영할 수 있다. 코드 #include sort(arr,arr+n);//배열의 오름차순 정렬(n개의 칸을 가진) sort(v.begin(), v.end());//벡터의 오름차순 정렬 sort(arr,arr+n,cmp);//배열의 사용자 정의 함수 정렬 (주로 구조체에서 사용) sort(v.begin(), v.end(), cmp);//벡터의 사용자 정의 함수..
C++에서 범위 내 랜덤한 수, 난수를 생성하려면 다음과 같이 작성하면 된다. #include #include using namespace std; int main() { random_device rd; mt19937 gen(rd()); uniform_int_distribution distrib(1, 99);//1부터 99 사이의 랜덤한 정수 생성 int number = distrib(gen); cout
벡터(vector)는 자료구조 컨테이너 중 하나로, 기존의 배열과 같은 특징을 가지면서 배열을 보완한 동적 배열의 형태이다. 벡터 예제 #include // 벡터 선언 vector A; // 벡터 삽입 A.push_back(1); A.insert(A.begin(), 7);// 맨 앞에 7을 삽입 A.insert(A.begin()+2, 10);// index 2 위치에 10을 삽입 // 값 변경 A[4] = -5;// index 4 위치에 -5를 삽입. 인덱스를 사용하여 데이터에 접근이 가능하다 // 삭제 연산 A.pop_back();// 마지막 값 삭제 A.erase(A.begin(), 3);// index 3에 해당하는 값 삭제 A.erase(remove(A.begin(), A.end(), 특정 값),..
함수명 swap(), copy(), fill() 헤더 함수 설명 C++에서 배열이나 값을 교환할 때는 그냥 swap() 함수를 사용하면 된다. 만약, 특정한 구간끼리 교환하고 싶다면, swap_ranges(구간 1의 시작점, 구간 1의 끝점, 구간 2의 시작점)을 사용한다. 또한, copy(복사 시작, 복사 끝, 복사 위치)를 사용하면 복사/붙여 넣기를 할 수 있고, fill(시작, 끝, 채울 값)을 통해 동일한 값으로 채워 넣을 수 있다.
함수명 accumulate(), multiplies() 헤더 함수 설명 배열의 합을 계산할 때, accumulate() 함수를 사용하면 편리하다. 배열의 모든 요소를 곱한 값을 얻으려면 multiplies()를 사용한다. 코드 #include #include #include using namespace std; int main(){ vector v{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // 배열의 처음부터 끝의 값까지 초기값 0으로 모두 더한다. 출력 결과는 55 cout
연관 컨테이너(Associate container)는 키(key)와 값(value)처럼 관련이 있는 데이터를 하나의 쌍으로 저장하는 컨테이너이다(Python의 dictionary와 비슷한 듯?). 요소들에 빠른 접근이 가능하나 삽입 위치를 지정할 수는 없다. 보통 연관 컨테이너는 균형 이진 탐색 트리(balanced binary search tree)나 해시 테이블(hash table)을 이용하여 구현한다. STL에서 연관 컨테이너로 제공하는 클래스 템플릿은 set, multiset, map, multimap이 있다. Set: 저장하는 데이터 그 자체를 키로 사용하는 가장 단순한 연관 컨테이너. 벡터와 다르게 오름차순으로 정렬된 위치에 요소를 삽입하므로 검색 속도가 매우 빠르다. 키의 중복을 허용하지 않..
함수명 pow(), sqrt() 헤더 함수 설명 C++의 제곱과 제곱근은 pow() 함수와 sqrt() 함수를 이용한다. pow(num, 제곱수), sqrt(num) 이렇게 사용 가능하다. (Python과 같다고 기억하면 될 듯)
함수명 reverse() 헤더 함수 설명 문자열의 순서를 반대로 뒤집으려면 reverse() 함수를 사용하면 된다. 단, 문자열 변수에는 바꾼 문자열이 들어간다. 함수 내부는 while문으로 동작한다. 코드 #include #include #include #include using namespace std; int main() { vector str = {"level", "abc", "refer"}; for(string s : str){ string k = s; // s 자체를 바꾼다는 것에 주의! reverse(s.begin(), s.end()); if(k == s) cout
함수명 substr() 헤더 함수 설명 전체 문자열에서 부분 문자열을 추출하려면 substr() 함수를 사용한다. 이때, pos는 추출할 문자열의 시작 위치이고, len는 추출할 문자열의 길이이다. 만약, len가 마지막 문자열보다 길다면 마지막 문자열까지만 반환된다. 코드 // string substr (size_t pos = 0, size_t len = npos) const; int main() { std::string numbers = "0123456789"; std::string full = numbers.substr(); std::string sub = numbers.substr(3, 5); std::cout
함수명 push_back(), append(), insert() 헤더 함수 설명 문자열과 문자열을 연결할 때 push_back(), append(), insert() 함수와 += 연산자를 사용할 수 있다. 코드 string str1 = "abcde"; string str2 = "hijk"; // 아래 코드의 동작은 모두 같다 str1.push_back(str2); str1.append(str2); str1 += str2; str1.insert(str1.length(), str2); // aaaaabbbbb
VennieLee
'C++' 카테고리의 글 목록