0
오브젝트를 하나의 C++ std::map
에서 참조하여 다른 오브젝트에 넣으려는 경우 - 예를 들어 오브젝트를 낮은 우선 순위 트리에서 높은 우선 순위 트리로 이동하려는 경우.C++ map :: 지우기 동작
내가개체를 하나의 트리에서 가져온 경우 완전히 무효화합니까? 한 번에 두 나무에 모두 넣은 다음 erase
(즉, 개체가 두 번 참조됩니다).
설명서에 따르면 개체는 어느 경우에도 무효화되지만 IMHO는 100 % 명확하지 않습니다.
갱신 여기는 예 -하지만이 그냥 작동하지 않을 것을 나에게 보인다 - 적어도 참조를 사용 - ... 내가 포인터의 일부 양식을 사용해야합니다
PartialPage oldPage = hTree->oldestPage();
lTree->insertOldPage(oldPage);
hTree->erase(oldPage);
NB oldestPage()
은 PartialPage
엘리먼트가 2 개의 맵에 동시에있을 수 있다면'std :: shared_ptr'을 사용할 수 있습니다. 만약 std :: unique_ptr을 사용하지 않는다면 다른 맵으로 이동할 수 있습니다. 절차는'elem' 예를 들어 :'find' 함수로 다른지도로 이동합니다 (이 시점에서 ptr은 비어있을 것입니다),'elem'을 지 웁니다. – NetVipeC
지도에 실제로 무엇을 저장하고 있습니까? 객체 또는 포인터입니까? –
개체 - 내가 아무 것도 숨기고있는 것처럼 보입니다. ( – adrianmcmenamin