簡體   English   中英

C ++中的匿名數組

[英]Anonymous arrays in C++

在C99 +中,我可以使用匿名數組和結構作為復合文字,例如

void f(unsigned char *data);

f((char []){ 42, 15, 33 });

這是等價的

{
    char tmp[] = { 42, 15, 33 };
    f(tmp);
}

有沒有辦法在C ++中做類似的事情?

在C ++ 11中,你有std::initializer_list ,它允許類似的東西:

// Declare function
void f(std::initializer_list<int> data);

...

// Call function
f({ 1, 2, 3, 4 });

大多數容器已被修改為采用std::initializer_list ,因此您可以使用例如std::vector代替:

// Function declaration, call as before
void f(const std::vector<int>& data);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM