1. 예시 코드 주요 설명
명칭 |
설명 |
vector vec |
main 함수에서 선언한 int형 vector |
void modifyVector(vector vec) |
call by value 방식으로 vec의 원소 값을 받는 함수 |
void modifyVector(vector &vec) |
call by reference 방식으로 vec의 주소 값을 받는 함수 |
vec.size() |
vec의 크기를 반환하는 멤버변수 unsigned int형으로 반환 |
vec.at(정수형 인덱스) |
vec에 정수형 인덱스에 해당되는 원소 값을 반환 |
vec.push_back(정수) |
vec의 마지막 원소 뒤에 정수 값을 추가 |
2. call by value
#include <iostream>
#include <vector>
using namespace std;
void modifyVector(vector<int> vec);
int main(void) {
vector<int> vec = { 1, 2, 3 };
modifyVector(vec);
for (unsigned int i = 0; i < vec.size(); i++) {
cout << vec.at(i) << " ";
}
cout << endl;
return 0;
}
void modifyVector(vector<int> vec) {
vec.push_back(4);
for (unsigned int i = 0; i < vec.size(); i++) {
cout << vec.at(i) << " ";
}
cout << endl;
}
call by value 예시 코드 실행 결과
3. call by reference
#include <iostream>
#include <vector>
using namespace std;
void modifyVector(vector<int> &vec);
int main(void) {
vector<int> vec = { 1, 2, 3 };
modifyVector(vec);
for (unsigned int i = 0; i < vec.size(); i++) {
cout << vec.at(i) << " ";
}
cout << endl;
return 0;
}
void modifyVector(vector<int> &vec) {
vec.push_back(4);
for (unsigned int i = 0; i < vec.size(); i++) {
cout << vec.at(i) << " ";
}
cout << endl;
}
call by reference 예시 코드 실행 결과
출처 : vector의 call by value, call by reference (tistory.com)