반응형
코테를 준비하면서 한가지 궁금한 점이 생겨서 메모
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<pair<int, int>> s;
s.push({10, 10});
pair<int, int> top = s.top();
top.second -= 10;
cout << s.top().second << "\n";
}
출력 : 10
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<pair<int, int>> s;
s.push({10, 10});
pair<int, int>& top = s.top();
top.second -= 10;
cout << s.top().second << "\n";
}
출력 : 0
위 아래 두 코드의 차이점은 단 한 줄
pair<int, int> top = s.top();
이거냐
pair<int, int>& top = s.top();
이거냐이다.
&를 사용하면 레퍼럴이 되어서, 변화가 실제 값에도 영향을 끼친다.
반응형
'[C++]' 카테고리의 다른 글
stringstream 실험 (0) | 2023.08.07 |
---|---|
C++과 파이썬의 문자열 파싱 강력한 차이 / 날짜 (0) | 2022.11.27 |
배열과 벡터의 복사 (0) | 2022.10.08 |
코테 보고 느낀점 (1) | 2022.09.24 |
[C++] XCODE 특정 파일 제외하고 빌드/컴파일 (0) | 2021.07.05 |