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;
}
'소프트웨어 > C++' 카테고리의 다른 글
C++ lower_bound, upper_bound 활용하기 (0) | 2022.02.13 |
---|---|
C++ 주요 STL(Standard Template Library) 내용 정리 (0) | 2022.02.13 |
C++ tuple로 이루어진 vector 요소 추가, 정렬, 출력 (0) | 2022.02.13 |
C++ map 라이브러리 코드 예제 (0) | 2022.02.13 |
C++ 함수 오버로딩(Function overloading) 코드 예제 (0) | 2022.02.13 |