我想在地图容器中插入键和值。我的密钥只有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
集的不同位置的值。
请告诉我如何才能这样做。我在线搜索我没有得到任何与此相关的答案。
任何帮助都将不胜感激。
此致
答案 0 :(得分:1)
以下是我希望有所帮助的例子:
#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") );
}