通过引用将STL映射传递给模板化函数

C++ - Passing STL map by reference to a templated function

本文关键字:函数 引用 STL 映射      更新时间:2023-10-16

这段代码中有什么问题,因为我正在获得分段错误按值返回map似乎没有问题。

#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;
}

您需要在函数中返回

#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;
}