Vector

    [C++] 2차원 vector 크기 동적으로 재설정

    아래와 같이 이미 초기화가 된 벡터에 resize 함수를 사용하면 열이 제대로 반영이 안되는걸 볼 수가 있는데 2번째 인자인 vector(5)는 임시 객체이기 때문에 본 객체에 변경이 반영되지 않는다.int main(){ vector> a(7, vector(6)); a.resize(5, vector(5)); a[0].resize(5);} 해결 할 수 있는 방법은 새로운 임시 객체를 만들어 재할당 하는것이다vector> a(7, vector(6));a = vector>(7, vector(5)); 코딩테스트 때 유용하게 써먹자

    [C++] vector (벡터) 복사하기

    반복자#include #include using namespace std;void printVector(const vector v) { cout vect1{1, 2, 3, 4}; vector vect2; for (int i = 0; i  출력Old vector elements are : 1 2 3 4 New vector elements are : 1 2 3 4 The first element of old vector is :2The first element of new vector is :1할당 연산자 =(Assignment Operator =)#include #include using namespace std;void printVector(const vector v) { ..

    [C++] iterator (반복자) vector와 list의 비교

    개념 어떤 컨테이너(자료구조)에 접근하든 동일한 방법으로 접근하기 위해서 제공되는 객체. 반복자는 원소의 위치를 갖고 있는 포인터와 비슷한 형태이다. 반복자를 이해하기 위해 먼저 벡터와 리스트의 접근 방식을 비교해보자. 벡터는 배열 기반으므로 연속된 메모리 공간을 가지고 있다. 그래서 인덱스 연산으로 임의 접근이 가능하고, 인덱스에 넣은 값을 증가시키는 방식으로 순회도 가능하다. 모든 컨테이너에 이런 간단한 방식으로 접근이 가능하다면 반복자는 필요하지 않을 것이다. 하지만 컨테이너들마다 접근 방식이 다르다. 하지만 리스트는 우선 연속된 메모리 공간을 가지지 않기 때문에 벡터처럼 인덱스 로 접근하는 것이 불가능하다. 즉 다른 방법으로 순회를 해야 한다. 리스트는 현재 가리키고 있는 노드와 다음 노드의 주소..

    [C++] vector resize 시 주의할 점

    기존보다 더 작게 할당하게 될 경우 만약 1 라는 값을 5 개 가진 벡터를 3 의 크기로 resizing 하며 2 로 채운다면 #include #include using namespace std; void Print_Vec(const vector vec) { for (auto const &it : vec) { cout

    [3] 최고의 집합

    #include #include using namespace std; vector solution(int n, int s) { vector answer; if (n > s) answer.push_back(-1); else { int d=s/n, r=s%n; answer.assign(n, d); for (int i = answer.size() - 1; i >= 0 && r > 0; i--) { answer[i]++; r--; } } return answer; }

    C++ vector empty()와 size()간 차이

    vector::empty() 벡터가 비어있는지 확인하는 함수이다. Input : myvector = 1, 2, 3, 4, 5 myvector.empty(); Output : False Input : myvector = {} myvector.empty(); Output : True 시간 복잡도 : O(1) #include #include using namespace std; int main() { vector myvector{}; if (myvector.empty()) { cout

    C++ vector사용법 및 설명 (장&단점)

    vector vect; // vect는 stack, 각 원소들은 heap vector *vect = new vector; // vect와 각 원소들 모두 heap vector vect; // vect는 stack, 각 원소들은 heap 그리고 가리키는 대상들은 heap 또는 stack https://stackoverflow.com/questions/8036474/when-vectors-are-allocated-do-they-use-memory-on-the-heap-or-the-stack 속도적인 측면에서 array(배열)에 비해 성능은 떨어지지만 메모리를 효율적으로 관리하고 예외처리가 쉽다는 장점이 있다. Vector의 초기화 vector 변수명 백터 생성 vector 변수명(숫자) 숫자만큼 백터 생성 ..