내 응용 프로그램에서 이중 벡터 STD::VECTOR<STD::VECTOR<STD::STRING>> List
, 내가 목록에 두 개의 배열을 가지고 있습니다. 첫 번째 배열은 55 개의 요소를 포함하고 두 번째 배열은 48 개의 요소를 포함합니다. 이제 List의 첫 번째 배열에 처음 20 개의 요소를 유지하고 두 번째 배열에 나머지 35 개의 요소를 보내 83 (35 + 48) 개의 요소로 만들어야합니다. 나에게 최적화 된 방법을 제안 해주세요. 나는 자전거 타기를 시도했다. 그러나 나에게 너무 긴 코드와 시간이 걸리게했다. 똑같이 직접적인 조언이 있다면 조언 해주세요. 저는 VS2010에서 C++ 코드를 사용하고 있습니다. 미리 감사드립니다.더블 벡터 크기 조정
-4
A
답변
1
emplace_back(std::move(x))
은 가장 효율적인 방법입니다.
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <iterator>
using namespace std;
int main()
{
vector<string> v1 { "The", "cat", "sat" };
vector<string> v2 { "My", "dog", "barks", "a", "lot", "on", "the", "mat" };
auto split = find(begin(v2), end(v2), "on");
for (auto i = split ; i != v2.end() ; ++i) {
v1.emplace_back(std::move(*i));
}
v2.erase(split, end(v2));
copy(begin(v1), end(v1), ostream_iterator<string>(cout, " "));
cout << endl;
copy(begin(v2), end(v2), ostream_iterator<string>(cout, " "));
cout << endl;
}
+0
'std :: move'와 함께'emplace' 함수를 사용하지 않았습니다. 고마워. – Rook
+0
당신이 그들을 옮긴 후에 소스 목록에서 무효화 된 요소를 지우는 것을 잊지 마십시오 (예를 들어, 제 대답을 업데이트하기 전에했던 것처럼 ...) –
관련 문제
- 1. 표준 벡터 크기 조정
- 2. 포인터의 벡터 크기 조정
- 3. cpp의 벡터 크기 조정
- 4. for_each 벡터 크기 조정 벡터의 벡터
- 5. 크기 조정 벡터 컴파일러 오류
- 6. 더블 JTable의 열 크기 조정 문제
- 7. 2D 벡터 크기 조정 런타임 오류
- 8. C++에서 반복자가 주어진 벡터 크기 조정
- 9. 2 차원 벡터 크기 조정 - 오류
- 10. 벡터 지우기 및 크기 조정 - C++
- 11. 벡터 크기 조정/할당하지 기본값을 추가하지
- 12. 템플릿의 재귀 중첩 벡터 크기 조정
- 13. 메모리 액세스 오류 벡터 크기 조정
- 14. 벡터 벡터 벡터의 크기
- 15. Accelerate에서 크기 조정
- 16. DataGridView 가상 모드 열 구분선 더블 클릭 자동 크기 조정
- 17. wpf listview 머리글을 방지 더블 클릭 열을 자동으로 크기 조정
- 18. 크기 ++ 벡터
- 19. 더블 글꼴 크기
- 20. 인텔에서 긴 더블 크기
- 21. 더블 크기 SVG 파일
- 22. 벡터 벡터 문자열 고정 크기
- 23. 크기 조정 UIFont 크기
- 24. JqGrid 크기 조정 브라우저의 크기 조정 문제
- 25. Java에서 이미지 크기 조정. 크기 조정 방법
- 26. Java에서 이미지 크기 조정/크기 조정 방법
- 27. 내부 컨테이너의 글꼴 크기 조정/크기 조정
- 28. vb.net에서 이미지 조작/크기 조정/크기 조정
- 29. 배치 이미지 크기 조정/크기 조정
- 30. 크기 조정 div 윈도우에서의 너비 크기 조정
당신이 무엇을 가장 확실히되지 않습니다 : 여기에
는 단순화 된 예입니다. 모든 대문자로 코드를 작성하면 문제가 발생할 수 있습니다. 그래서 우리가 실제로 가지고있는 것을 보여주십시오. 문제를 해결하기 위해 작성한 코드를 표시하고 문제가 발생한 위치를 보여줍니다. – Bart이 질문은 부탁을받는 것이지만 효율성을 높이기위한'std :: move'와'emplace_back'의 역할에 대한 올바른 지적을 제기합니다. –
나는 이것을 "double vector"라고하지 않을 것입니다 ... 제목에서'std :: vector'에 대해 말하고 있다고 가정했습니다. 중첩 벡터 나 벡터 벡터 같은 용어는 더 적절할 수 있습니다. –
Rook