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();

랑 다른 코드다 윗 코드처럼 쓰는게 더 효율적임