gpt4 book ai didi

c++ - C++ 中的匿名数组

转载 作者:行者123 更新时间:2023-11-28 02:54:28 27 4
gpt4 key购买 nike

在 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 });

大多数containers已被修改为采用 std::initializer_list,因此您可以拥有例如一个std::vector相反:

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

关于c++ - C++ 中的匿名数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22308704/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com