Table of contents

    1. 정리

    vector는 크기가 변경될 수 있는 동적 배열입니다. 활용은 배열처럼 간단하게 가능하고, 추가 및 삭제는 연결리스트처럼 유연합니다. 1차원 및 2차원 vector를 선언 및 정의하고 함수로 인자를 전달하여 출력해보겠습니다.

     

     

     

    먼저, 1차원 및 2차원 vector를 선언해보죠. 

     

    v_11에는

     

    {"a", "b", "c"}

     

    가 저장된 1차원 vector입니다.

     

    v_22에는

     

    {"a", "aa"}

     

    {"b", "bb"}

     

    {"c", "cc"}

     

    가 저장된 2차원 vector입니다.

    vector<string> v_11 = { "a", "b", "c" };
    vector<vector<string>> v_22 = { {"a", "aa"},{"b", "bb"},{"c", "cc" } };

     

     

     

    다음은 1차원 벡터를 출력하는 함수를 선언해보겠습니다. for문으로 접근이 가능하여, 다른 언어를 활용했던 분들에게도 활용하기 쉬울듯 하네요. 벡터의 사이즈만큼 반복하여 출력하도록 했습니다.

    int print_v_11(vector<string> v_11) {
    	cout << "print_v_11 시작" << endl;
    	for (int i = 0; i < v_11.size(); i++) {
    		cout << v_11[i] << endl;
    	}
    	cout << "print_v_11 종료" << endl;
    
    	return 0;
    }

     

     

     

    다음은 2차원 벡터를 출력하는 함수를 선언해보겠습니다. 마찬가지로, for문으로 접근이 가능하고 2중 for문으로 접근하도록 하겠습니다. 2차원 벡터의 사이즈만큼 반복하고 현재 접근중이 벡터의 사이즈만큼 반복하면서 출력하도록 했습니다.

     

    int print_v_22(vector<vector<string>> v_22) {
    	cout << "print_v_22 시작" << endl;
    	for (int i = 0; i < v_22.size(); i++) {
    		for (int j = 0; j < v_22[i].size(); j += 1) {
    			cout << v_22[i][j] << " ";
    		}
    		cout << endl;
    	}
    	cout << "print_v_22 종료" << endl;
    
    	return 0;
    }

     

     

     

    다음은 함수에 선언했던 벡터들을 인자로 전달해보겠습니다. c++은 기능은 강화되면서 뭔가 직관적인 부분이 업그레이드 된 느낌이군요.

     

    print_v_11(v_11);
    print_v_22(v_22);

     

     

     

    출력화면입니다. 아직, 벡터에 추가/삭제를 한 것은 아니지만, 추가/삭제 또한 간단합니다. 확실히, 배열처럼 활용할 수 있어 직관적이고 추가/삭제도 간단해지니 c언어에 비해 매우 강력한 언어로 느껴지네요.

     

    2. 전체코드

    #include <string>
    #include <vector>
    #include <map>
    #include <iostream>
    
    using namespace std;
    
    int print_v_11(vector<string> v_11) {
    	cout << "print_v_11 시작" << endl;
    	for (int i = 0; i < v_11.size(); i++) {
    		cout << v_11[i] << endl;
    	}
    	cout << "print_v_11 종료" << endl;
    
    	return 0;
    }
    
    int print_v_22(vector<vector<string>> v_22) {
    	cout << "print_v_22 시작" << endl;
    	for (int i = 0; i < v_22.size(); i++) {
    		for (int j = 0; j < v_22[i].size(); j += 1) {
    			cout << v_22[i][j] << " ";
    		}
    		cout << endl;
    	}
    	cout << "print_v_22 종료" << endl;
    
    	return 0;
    }
    
    int main(void)
    {
    	vector<string> v_11 = { "a", "b", "c" };
    	vector<vector<string>> v_22 = { {"a", "aa"},{"b", "bb"},{"c", "cc" } };
    
    	print_v_11(v_11);
    	print_v_22(v_22);
    
    	return 0;
    }