std::vector
을 for 루프 내에서 재사용하고 싶습니다. 그러나 for 루프의 각 반복 단계마다 벡터가 비어 있어야합니다.크기를 변경하지 않고 표준 : 빈 벡터를 비움
질문 : 질문 : 가장 효율적인 방법으로 용량을 변경하지 않고 벡터를 빠르게 비울 수 있습니까? 내가 사용하는 어떤
지금까지
std::vector<int> myVec;
for(int i=0; i<A_BIG_NUMBER; ++i) {
std::vector<T>().swap(myVec);
myVec.reserve(STANDARD_MAXIMUM);
/// .. doing business
}
건배입니다!
해결 방법 : 답변
덕분에, 여기 내가 구현 (확인) 방법은 다음과 같습니다
#include <vector>
#include <iostream>
int main() {
int n = 10;
std::vector<int> myVec;
myVec.reserve(n);
for(int j=0; j<3; ++j) {
myVec.clear();
for(int i=0; i<n; ++i) {
myVec.push_back(i);
}
for(int i=0; i<myVec.size(); ++i) {
std::cout << i << ": " << myVec[i] << std::endl;
}
}
return 0;
}
편집 :이 operator[]
에서 push_back
로 변경되었습니다.
선택한 솔루션이 잘못 될뿐만 아니라 질문이 의미가 없습니다. 벡터의 크기를 일정하게 유지하려면이 벡터의 크기를 지우지 마십시오. 기존 요소의 맨 위에 쓰거나 각 요소를 개별적으로 재설정 할 수 있습니다. –
@BoPersson : 그래, 속았다. 너무 많은 것을 원해 .. 내 질문에서 그걸 잘라 버릴거야. – ezdazuzena
'algorithm' 라이브러리에서'remove'를 찾고 계셨습니까? –