-1
我有一個循環遍歷每個鍵和每個鍵的值。我爲每個點創建一個RoadSegment,並且想要使用這些值來設置RoadSegment的座標。要做到這一點,我需要迭代的當前vec3以及序列中的下一個vec3。存儲當前和下一個迭代器
是否有下一次迭代存儲的序列中,這樣我可以參考值的方式(*下)。第二 我試圖創建另一個的std ::多重映射:迭代下 ,然後設置下一= mapit地圖++但似乎操縱mapIt值爲下面的循環,所以下一個在前面是不一樣的mapIt在以下循環
非常感謝您的幫助。
for(int i = 0; i < m_genRoads->getKeyValueData().size(); i++)
{
int numberDesired = m_genRoads->getMultimapData().count(i) - 1;
std::multimap<int, glm::vec3>::iterator mapIt;
std::multimap<int, glm::vec3>::iterator next;
std::pair<std::multimap<int, glm::vec3>::iterator, std::multimap<int, glm::vec3>::iterator> it;
it = m_genRoads->getMultimapData().equal_range(i);
for(mapIt = it.first; mapIt != it.second; mapIt++)
{
next = mapIt++;
int distance = std::distance(it.first, mapIt);
if(distance != numberDesired)
{
std::cout<<"MAKE ROAD SEGMENT"<<std::endl;
RoadSegement* roadSegmentPointer = new RoadSegement();
**roadSegmentPointer->setYcoord((*mapIt), (*next));
roadSegmentPointer->setXcoord((*mapIt));**
m_segmentArray.push_back(roadSegmentPointer);
}
else
{
std::cout<<"..................."<<std::endl;
continue;
}