C ++ - 通过引用传递STL映射到模板化函数

时间:2016-09-28 06:34:20

标签: c++ dictionary stl

此代码出了什么问题,因为我遇到了分段错误 似乎按值返回地图不成问题。

#include<bits/stdc++.h>
using namespace std;

template<typename T>
T myMapIntersect(T& left, T& right)
{ }

int main()
{
    map<string, int> m;
    m["aa"] = 1;
    m["bb"] = 1;
    m["vf"] = 1;
    m["hh"] = 1;

    myMapIntersect< map<string,int> >(m, m);
    return 0;
}

1 个答案:

答案 0 :(得分:2)

您需要返回您的功能

#include<bits/stdc++.h>
using namespace std;

template<typename T>
T myMapIntersect(T& left, T& right)
{
    return left;
}

int main()
{
    map<string, int> m;
    m["aa"] = 1;
    m["bb"] = 1;
    m["vf"] = 1;
    m["hh"] = 1;

    myMapIntersect< map<string,int> >(m, m);
    return 0;
}