我想要做的是std::vector通过直接在调用中放入一个数组来调用包含参数的函数.我不想创建一个向量然后将它传递给函数,但我想在函数中放置大括号.这是一般的想法:
void doSomething(std::vector<int> arr)
{
std::cout << arr[0] << std::endl;
}
int main()
{
doSomething({ 1, 2, 3 });
}
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误.我也试过使用lambda表达式,我不太熟悉,但这里是:
doSomething([]()->std::vector<int>{ return{ 1, 2, 3 }; });
Run Code Online (Sandbox Code Playgroud)
这不起作用.这是我不想要的:
std::vector<int> a {1, 2, 3};
doSomething(a);
Run Code Online (Sandbox Code Playgroud)
那我该怎么做呢?我真的希望我写的不是完全愚蠢的.
您可以使用从初始化列表初始化的临时向量:
doSomething(std::vector<int>{1, 2, 3 });
Run Code Online (Sandbox Code Playgroud)