저는 C++을 처음 사용합니다. 나는 list
에서 map
으로 C++로 복사하는 법을 알아야한다. 코드 샘플은 훌륭합니다. copy
이 list
및 map
A의 직접 호환되지 않습니다으로C++에서지도로 목록 복사
답변
당신은 소스 list
및 대상 map
에 대한 copy
을 사용할 수 없습니다.
그리고 무엇을 복사하겠습니까? 열쇠, 가치, KVP? – Nick
이 작업을 수행 하시겠습니까? – besworland
내 대답을 쓴 후에 질문을 편집했습니다 .. – iyasar
std::map은 키 - 값 쌍을 보유하는 연관 컨테이너입니다. std::list은 값만 보유합니다. 따라서 목록에 올바른 유형의 키 - 값 쌍이 포함되어 있지 않으면 질문이 이해가되지 않습니다. 목록 대상 맵의 값 유형을 일치 std::pairs
를 포함 할 일이
경우, 반복자 생성자를 사용하여지도를 초기화 할 수 있습니다 :
std::list<std::pair<std::string, int>> = ....;
std::map<std::string, int> m(l.begin(), l.end());
또는이었다 당신은 std::copy
알고리즘을 사용할 수 있습니다
std::map<std::string, int> m1;
std::copy(l.begin(), l.end(), std::inserter(m1, m1.begin()));
를하지만지도가 동일한 키 값을 보유 할 수 없기 때문에 "복사는"당신이 기대하는 일을 할 수 없습니다 점에 유의 : 다른 제안했다.
목록 클래스는 이름에서 알 수 있듯이 개체 목록입니다. 그러나지도는 쌍의 목록입니다. 따라서 과일 "사과", "배", "수박"의 목록이 있다면지도에 넣을 수 있지만, 뭔가지도에 표시해야합니다 (의미있는 의미가 있음).
예 :
map<string, string> mapFruits;
mapFruits["apple"] = "red";
mapFruits["pear"] = "yellow";
mapFruits["watermelon"] = "green";
등
생성자 사용할 수 있습니다:
std::list<std::pair<int, std::string>> thelist = /* ... */ ;
std::map<int, std::string> themap(thelist.begin(), thelist.end());
귀하의 목록에있는지도에 적합한 키 - 값 쌍을 포함 할 필요가 있습니다.
+1, 이것은 적어도 질문에서 추가 컨텍스트없이 list-> map이 가능할 수있는 유일한 방법입니다. – Flexo
질문의 맥락에서 나는 개인적으로 목록에 실제로 kvp가 포함되어 있는지 의심 스럽다. – Vlad
@awoodland는 "이해하기"의 정의에 따라 다릅니다. 목록에 중복이 포함될 수 있으며지도에 중복 키가 포함될 수 없으므로 "복사"를주의해서 수행해야합니다. – juanchopanza
목록에서 값을 출력하는 방법과지도에 값을 추가하는 방법에 대한 많은 예제가 온라인에 있습니다. 그래서 나는 그것을 여기서 반복하지 않을 것이다. (이 차의 모든 사람의 컵이 아니다 있습니다.) cplusplus.com 봐
경고 : 1이없는 당신이 찾을 수 있도록지도는 고유 키 입력 값을 저장합니다 :지도 항목 사이 1 매핑하여 목록 항목 (즉,지도에서 같거나 적은 수를 얻을 수 있습니다.) 그래서 먼저 각 컨테이너를 사용하는 이유를 명확히하십시오.
- 1. 복사 목록
- 2. 복사 생성자 초기화 목록
- 3. LaTeX 목록 패키지 : 복사 가능 목록
- 4. VB.NET 목록 개체를 다른 목록 개체로 복사
- 5. sharepoint 다른 웹에 목록 복사
- 6. SharePoint 목록 - SPListItem ID 복사
- 7. 지연 목록 복사 (복사시 쓰기)
- 8. Automapper 복사 목록 나는이 수업을
- 9. dropdownlist의 옵션 목록 복사. JQuery와
- 10. 목록 항목을 원본에서 대상으로 복사 할 때 폴더 복사
- 11. GetFile 원격 서버에서 로컬 서버로 목록 복사 및 복사
- 12. python 목록 복사 : 이전 [:]과 목록 (이전) 사이에 차이가 있습니까?
- 13. 복사 링크 된 목록, 각 노드가 무작위 목록
- 14. 배치 : 확장명을 무시한 파일 목록 (txt) 복사
- 15. 목록 개체 값이 내용이 아닌 복사
- 16. 새로 고침하고 목록 페이지에 복사 복제본을 나열하십시오.
- 17. QML 항목의 하위 목록 딥 복사
- 18. 일반 목록 값을 다른 일반 목록으로 복사
- 19. 항목 수가 제한된 Java 목록 복사
- 20. 링크 된 목록 및 복사 생성자
- 21. 하나의 델리게이트에서 다른 델리게이트로 호출 목록 복사
- 22. 점프 목록 복사 디스크에 대한 바로 가기
- 23. 목록 마스터 목록에서 하위 사이트로 복사
- 24. C++ : 효율적인 벡터 목록 벡터 복사
- 25. 텍스트 복사 JQuery와/자바 스크립트와 목록 상자하기
- 26. 복사 필드
- 27. 파이썬에서 목록 복사 : 깊은 대 얕은 복사 : 나를 위해 파이썬에서 잡았나요?
- 28. 선택한 목록 항목을 ECMA 스크립트로 다른 목록에 복사
- 29. 초기화 프로그램 목록 : 복사 생성자 및 할당 연산자 = 중복성?
- 30. SharePoint 목록 조회 필드가있는 항목 - 다른 사이트 모음으로 이동/복사
목록에 어떤 데이터가 있습니까? – besworland
std :: vector와 std :: map을 의미합니까? – Nick
이 두 데이터 구조는 두 가지 목적으로 사용됩니다. 당신은 우리에게 당신의 전달 기능을 말해야합니다. – user7116