[C++] 개념 - (STL) Vector 기본 정리

영구·2024년 1월 25일

c++ 개념

목록 보기
6/10

<기본 함수>

#include <iostream>
using namespace std;
#include <vector>

int main()
{
    // 생성 & 초기화
    vector<int> v;
    vector<int> v2(5, 2); // 2로 초기화된 5개의 원소를 가짐

    // 여러 함수들
    v.assign(3, 5); // 5의 값으로 3개 원소 할당
    v.push_back(1); // 마지막 원소 뒤에 1을 삽입
    v.pop_back(); // 마지막 원소 제거
    cout << v.front() << endl; // 첫번째 원소
    cout << v.back() << endl; // 마지막 원소
    cout << v.size() << endl; // 원소 갯수
    v.resize(5, 2); // 크기 변경, 더 커진 경우 초기화할 값
    cout << v.size() << endl;
    cout << v.back() << endl;
    cout << v.capacity() << endl; // size, capacity는 다른 값을 가짐
    v.swap(v2); // v1, v2의 원소와 capacity 전부 swap
    cout << v2.empty() << endl; // 원소가 하나도 없으면 true

    // 삽입, 삭제
    vector<int>::iterator it;
    it = v2.begin();
    cout << v2.size() << endl; // 5
    v2.insert(it+2, 2, 8); // 인덱스 2에 8을 두번 삽입
    cout << v2.size() << endl; // 7
    v2.insert(v2.begin(), 2, 8); // 인덱스 2에 8을 두번 삽입
    cout << v2.size() << endl; // 9
    v2.erase(v2.begin()+2); // 인덱스 2 원소 삭제
    cout << v2.size() << endl; // 8

    // 순회
    for(vector<int>::size_type i=0; i<v2.size(); i++)
    {
        cout << v2.at(i) << " ";
    }
    cout << endl;

    for(int i=0; i<v2.size(); i++)
    {
        cout << v2.at(i) << " ";
    }
    cout << endl;

    for(it=v2.begin(); it!=v2.end(); it++)
    {
        cout << *it << " ";
    }
    cout << endl;

    return 0;
}

<vector 변경 및 순회>

#include<bits/stdc++.h>
using namespace std;

int main()
{
    vector<int> v1 = {1,2,3,4,5,6};
    vector<int> v2 = {1,2,3,4,5,6};

    // vector 실제 원소값 바뀌지 않음
    for(int e:v1)
    {
        e+=1;
    }

    // vector 실제 원소값 바뀜
    for(int& e:v2)
    {
        e+=1;
    }

    for(int i=0; i<v1.size(); i++)
    {
        cout << v1[i] << ' ';
    }
    cout << '\n';

    for(int i=0; i<v2.size(); i++)
    {
        cout << v2[i] << ' ';
    }
    cout << '\n';

    return 0;
}

0개의 댓글