https://stackoverflow.com/questions/15704565/efficient-way-to-return-a-stdvector-in-c
그냥 리턴하면 된다 ㅇㅇ
set<int> f() {
set<int> localset;
return localset;
}
set<int> x = f()
하면 99% 확률로 니가 생각하는 제일 효율적인 방법으로 컴파일됨 ㅇㅇ 복사 없음
단, PS적인 측면에서는 하나를 계속 clear해주면서 돌려쓰는게 더 나을수도 있음
for(int i = 0; i < n; ++i) {
set<int> x = f();
}
보단
set<int> x;
for(int i = 0; i < n; ++i) {
x.clear();
(x 초기화하는 코드)
}
가 조오오오오금더 나을 수 있음 어쨌든 위에껀 n개의 set을 할당했다 삭제하는데 밑에껀 1개만 돌려쓰니까
근데 99% 확률로 의미없을거임
참고) C++은 병신언어라서
set<int> x= f();
랑
set<int> x;
x = f();
랑 다른 코드다 윗 코드처럼 쓰는게 더 효율적임
https://stackoverflow.com/questions/15704565/efficient-way-to-return-a-stdvector-in-c
오 생각보다 최적화 잘되있나보네 ㄱㅅㄱㅅ