我可以动态创建新地图并作为函数参数传递吗?
Can I create a new map on the fly and pass as a function parameter?
在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;
}
相关文章:
- 如何在C++中将迭代器作为函数参数传递
- 为什么我不能将引用作为 std::async 的函数参数传递
- 节点插件 API 将数组作为函数参数传递
- 将字符串数组作为函数参数传递
- 如何通过 C++ 中的函数参数传递初始值设定项列表的固定大小的初始值设定项列表?
- 我可以动态创建新地图并作为函数参数传递吗?
- 将任意模板向量作为函数参数C++传递
- 将函数指针作为函数参数传递的目的
- C++:通过函数参数传递的值给出不同的结果
- 当数组大小在C++中未知时,如何在运行时将对字符串数组的引用作为函数参数传递?
- 通过宏将函数参数传递给函数
- C++:访问作为函数参数传递的双指针数组所指向的变量的值
- 如何将 std::string 作为构造函数参数传递,并将其保存的 C 字符串存储在 void 指针中?
- 将派生类构造函数参数传递给受保护的成员
- 将指向数组的指针作为函数参数传递,这本身就是另一个函数的返回值?
- 如何将二维数组类型字符(字符串)作为函数参数传递?
- 有什么理由C++ 11+ std::mutex 应该声明为全局变量,而不是作为函数参数传递到 std::thread 中
- 如何将派生类作为函数参数传递:如果派生类成员不在父类中怎么办
- 如何将变量作为构造函数参数或函数参数传递
- 当数组对象以函数参数传递时,为什么复制构造函数会自称