简体   繁体   English

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

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

What is wrong in this code as I am getting segmentation fault It seems returning map by value is not problematic. 当我遇到分段错误时,这段代码有什么问题似乎按值返回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;
}

You need to return in your function 您需要返回您的函数

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM