728x90
아래와 같이 vector 매개변수로 두어 함수를 호출한 경우 함수 안에서 값을 바꾸더라도 해당 함수가 반환된 이후인 main 함수에서는 영향이 없습니다.
#include<bits/stdc++.h>
using namespace std;
void func(vector<int> vect)
{
vect.push_back(30);
}
int main()
{
vector<int> vect;
vect.push_back(10);
vect.push_back(20);
func(vect);
for (int i=0; i<vect.size(); i++)
cout << vect[i] << " ";
return 0;
}
output:
10 20 |
때문에, 호출한 함수안에서 vector 값을 변경하고 싶은 경우에는 vector를 값에 의한 호출(call by value)이 아닌, 아래와 같이 참조에 의한 호출(call by reference)을 이용하여야합니다.
#include<bits/stdc++.h>
using namespace std;
void func(vector<int> &vect)
{
vect.push_back(30);
}
int main()
{
vector<int> vect;
vect.push_back(10);
vect.push_back(20);
func(vect);
for (int i=0; i<vect.size(); i++)
cout << vect[i] << " ";
return 0;
}
output:
10 20 30 |
728x90
'공부 > 코딩 개념정리' 카테고리의 다른 글
[Python] csv 파일 처리의 모든 것 (0) | 2021.05.01 |
---|---|
[C++] 1차원, 2차원 벡터 초기화 (1D 2D vector initialization) (0) | 2021.03.17 |
[프로그래밍] 메모이제이션 이해하기 (0) | 2021.01.01 |
[shell programming] awk linux 명령어 이해하기 (0) | 2020.12.29 |
[shell programming] sed linux 명령어 이해하기 (0) | 2020.12.29 |
댓글