• CSE207 객체지향 강좌 및 C++ 관련, 누구나 묻고 답하는 게시판 입니다.
  • CSE207 수강생이 아니여도 편안하게 질문하세요.
  • 첨부화일은 이미지 화일 혹은 zip 화일로 업로드 하기를 권합니다.

제목LAB8,(lab8) 기초3번 레퍼런스 질문입니다.2019-10-14 18:20
작성자

Lab8 기초3번 질문입니다.

빨간 줄 표시 쳐놓은 부분에 왜 '&'을 붙여야 하는지 모르겠습니다.

어차피 main내부 함수여서 레퍼런스를 사용하지 않아도 될 것 같은데, '&'을 붙이니까 변환된 값이 출력이 안 되더라구요.

빨간 줄 아랫 부분은 print 함수로 다시 올라가지도 않고, 계속 내려가는데 왜 '&'을 붙이지 않으면 값이 바뀌지 않나요?



void print(const vector<int>& v) {

for (unsigned i = 0; i < v.size(); i++)

cout << v[i] << "t";

cout << endl;

}


int main() {

// 인덱스        0    1   2

vector<int> vec{ 10, 20, 30 };

print(vec);

vec[0] = 100; // vector 인덱스 0번에 직접 대입

vec.at(0) = 200; // vector의 at() 함수 이용

print(vec);


vec.push_back(400); // vector의 push_back(넣을 숫자)

print(vec);


vec.pop_back(); // vector의 pop_back() 빈칸두면 맨 뒷자리 빼줌

print(vec);

cout << endl;


// 범위기반 for문을 이용한 vector 원소값 바꾸기

for (int& elem: vec) {

cout << "enter an element of vector v: ";

cin >> elem;

}

cout << endl << "[ vector v ]" << endl;

// 범위기반 for문을 이용한 화면 출력하기

for (int elem : vec) {

cout << elem << "t";

}

cout << endl;

return 0;

}

#lab8# LAB8# 기초3
댓글