如何在 Map 中存储集合容器的迭代器列表

How to store list of iterators of set container in Map

我想在地图容器中插入键和值。这里我的键只有 string 但值是 list< set<string>::iterator >.

这是我的头文件代码。

using Mypaths = set < string > ;
using Mapdata = map < string, list < set < string >::iterator > >;

Mapdata myMap;
Mypaths paths;

这里我想从一个函数中插入值,在 mymap 中键是正常的 string 但值应该是 list of iterator of set container 那些指向 Mypaths 的不同位置设置。

请告诉我该怎么做。我在网上搜索我没有得到任何与此相关的答案。

如有任何帮助,我们将不胜感激。

此致

下面是一个示例,希望对您有所帮助:

#include <string>
#include <set>
#include <map>
#include <list>

int main()
{
    using namespace std;

    using Mypaths = set < string > ;
    using Mapdata = map < string, list < set < string >::iterator > >;

    Mapdata myMap;
    Mypaths paths { "left", "right", "up", "down" };

    // Fill a temporary list with iterators...

    list< set<string>::iterator > temp;

    temp.push_back( paths.find("left") );
    temp.push_back( paths.find("up") );

    // ... and then add the list to the map

    myMap["left and up"] = std::move(temp);

    // Or do it directly within the map:

    myMap["right and down"].push_back( paths.find("right") );
    myMap["right and down"].push_back( paths.find("down") );
}