vector와 list의 차이점
·
C++/Basic
vector 연속적인 메모리. 미래에 들어갈 요소를 위해 선할당을 한다 각 요소는 요소 타입 그자체만큼의 공간을 요구한다 (포인터들을 포함하지 않는다). 당신이 요소를 추가하는 어느 때나, 전체 vector의 메모리를 재할당 할 수 있다. 끝에 요소를 추가하는 것은 상수(상환 시간)지만, 다른곳에서 추가하는 것은 O(n) 값이 든다. 끝에 요소를 제거하는 것은 상수 시간이지만, 다른곳에서 제거하는 것은 O(n)이다. 랜덤하게 vector 요소에 접근 할 수 있다. vector에 혹은 vector로 부터 요소를 추가하거나 제거하면, iterator는 무효화된다. 당신이 요소의 배열을 필요로 한다면, 근본적인 배열에서 쉽게 얻을 수 있다. 장점 1. 개별 원소들 접근 가능 2. 원소를 마지막에 삽입 하는 것..
[C++] new와 malloc의 차이
·
C++/Basic
malloc int* p; p = (int*)malloc(sizeof(int) * 2); p[0] = int(0); p[1] = int(1); cout
[C++] 가변인자 템플릿
·
C++/Basic
template void show(T value) { cout
[C++] 람다
·
C++/Basic
std::sort(x, x + n, [](float a, float b) { return (std::abs(a) < std::abs(b)); } ); - 함수포인터와 같이 사용할 수 있다. vector numbers(1000); generate(numbers.begin(), numbers.end(), rand); auto tests = [](float a, float b) { return (std::abs(a) < std::abs(b)); }; sort(numbers.begin(), numbers.end(), tests); sort(numbers.begin(), numbers.end(), tests); bool result = tests(2.4, 21.2); - 이름이 있는 람다를 만들어서 사용할 수 있..
[C++] fstream으로 입력 출력
·
C++/Basic
#include #include using namespace std; int main() { char co[21] = ""; ofstream fout;//파일로 내보내기 ifstream fin;//파일을 가져오기 cin >> co; fout.open("../test.txt");//../는 현재 폴더의 전 폴더 fout
[C++] cin, get, getline
·
C++/Basic
cin string s; cin >> s; cout