我可以动态创建新地图并作为函数参数传递吗?

Can I create a new map on the fly and pass as a function parameter?

本文关键字:函数 参数传递 动态 创建 新地图 我可以      更新时间:2023-10-16

在C#中,我可以像下面这样:

public static Dictionary<string,string> ExampleFunction(Dictionary<string, string> dict)
{
return dict;
}
public static void CallingFunction()
{
ExampleFunction(new Dictionary<string, string>() { { "test", "test" } });
}

在C++中是否有等效的方法可以做到这一点?如果这个问题在其他地方得到解答,请原谅我 - 这似乎是一个基本问题,但我一定没有使用正确的搜索词。这最接近我正在寻找但没有雪茄的内容:创建一个新对象并传入方法参数。

您可能正在寻找这样的东西:

std::map<std::string, std::string> ExampleFunction(
const std::map<std::string, std::string>& dict) {
return dict;
}
void CallingFunction() {
ExampleFunction({ { "test", "test" } });
}

演示

你可以这样做:

#include <iostream>
template<typename A, typename B> struct Dictionary
{
A Var1;
B Var2;
};
template<typename A, typename B> Dictionary<A, B> func(Dictionary<A, B> dict)
{
return dict;
}
int main()
{
auto res = func(Dictionary<int, int>{123, 445});
printf("%d - %dn", res.Var1, res.Var2);
getchar();
return 0;
}