繁体   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