3
我想要做的是調用一個包含std::vector
參數的函數,方法是直接在調用中放入一個數組。我不想製作一個矢量,然後將它傳遞給函數,但是我想把大括號放在函數中。這裏是一般的想法:如何將r值std :: vector傳遞給函數?
void doSomething(std::vector<int> arr)
{
std::cout << arr[0] << std::endl;
}
int main()
{
doSomething({ 1, 2, 3 });
}
這給了我一個錯誤。我也嘗試使用lambda表達式,我不太熟悉,但這裏是:
doSomething([]()->std::vector<int>{ return{ 1, 2, 3 }; });
這是行不通的。這裏是我不想要的:
std::vector<int> a {1, 2, 3};
doSomething(a);
那麼我該如何處理這個問題呢?我真的希望我寫的不是完全愚蠢的。
第一個代碼塊,我用gcc和鏗鏘編譯。 –
您的*一般想法*實際編譯。你試過了嗎? – skypjack
最初,當我嘗試它不起作用,但現在它確實。我一定事先做了錯事。現在它可以工作。謝謝。 –