问题标签 [braced-init-list]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
297 浏览

arrays - 我应该使用 {} 还是 {0} 来初始化数组/结构?

我对阅读用于将结构/数组初始化为默认值的代码有一个微弱的记忆,int x[4] = {};它依赖于首先出现在 gcc 中的非标准(但广泛)扩展,并且正确的版本(如标准中所述)是int x[4] = { 0 };

它是否正确?

0 投票
1 回答
62 浏览

c++ - 错误:“无法推断模板参数 '_Tp'” 将 {} 传入

这段代码给了我一个关于 {0, events[i][0]} 的错误:

但是当我将它明确定义为向量时,它会按需要工作。

有人可以解释为什么吗?

0 投票
2 回答
368 浏览

c - 将字符串文字与数组分配给 char

我有一个char pointer这样的字符串文字char *d="abc";,我正在增加它

b如果我这样做,我会得到类似的东西printf("%c",*(d+1))

但是当我有这些台词时

上面的行抛出异常。当我尝试使用 gdb 进行回溯和打印 *(c+1) 时,它说$1 = 0x61 <error: Cannot access memory at address 0x61>

所以我的问题是为什么这与我将字符串文字分配给时相比不起作用char pointer

当我将数组分配intint pointer并以这种方式递增时,也会发生同样的情况

0 投票
2 回答
61 浏览

c++ - 在两个函数之间选择一个重载函数,这两个函数都有一个数组引用类型的参数

这是一个演示程序,其中声明了两个函数,它们都接受对数组的引用。

正如所见,第一个函数声明是

第二个函数声明是

函数调用表达式为

尝试使用C++14 (gcc 8.3)www,ideone.com 上的编译器编译此程序时出现错误

程序不正确吗?

0 投票
1 回答
31 浏览

c++ - 推回二维向量的数据

我知道 {} 可用于初始化数组或向量。vector<int>如果我想跳过这一行,编译器如何知道 { 22, 33 } 是一个而不是 int 数组vector<int> v = { 44, 55 };

{22,33} 是临时对象吗?(我知道按值返回函数总是会产生临时对象。)

0 投票
1 回答
62 浏览

c++ - 初始化包含函数指针的结构向量给出“没有可行的重载'='”

我正在尝试编写一个芯片 CPU 仿真器并将其指令表实现为一个结构向量,其中每个结构包含一个值和一个指向特定操作的函数指针。但是,我的编译器(clang++)给了我错误:

没有运算符 "=" 匹配这些操作数 -- 操作数类型是:std::__1::vector<A::someStruct, std::__1::allocator<A::someStruct>> = {...}

和:

没有可行的重载'='

为线func_table = {{1,&A::func1},{2,&A::func2}};

我使用的语法与 GitHub 上类似项目中使用的语法完全相同,但仍然出现这些错误。使用非空函数指针的结构初始化似乎只是一个问题。我对使用 C++ 编程非常陌生,所以我很想知道我在误解什么。下面是头文件和源文件的示例

我不明白这些错误的含义以及为什么大括号初始化似乎与函数指针有问题。我非常感谢您对此的任何意见。谢谢

0 投票
3 回答
128 浏览

arrays - 将数组分配给C中的int

我用C编写了以下代码

似乎分配的变量(在本例中为 a)总是采用第一个数组元素的值。现在我想知道其他数组元素是否被丢弃,或者在a之后写入内存,从而导致缓冲区溢出。

0 投票
2 回答
58 浏览

c++ - 这是列表初始化还是值初始化?

这是列表初始化还是值初始化

我无法区分它们,因为我无法理解这句话:来自链接的可能为空的括号括起来的表达式列表或嵌套的括号初始化列表:https ://en.cppreference.com/w/cpp/language /list_initialization

0 投票
2 回答
41 浏览

c - 为什么使用括号会使多维数组的行为如此?

我不小心用这些而不是通常使用的大括号覆盖了数字并得到“2 4 0 0”。为什么会发生这种转变?

0 投票
2 回答
131 浏览

c++ - 具有大小的向量的类内初始化

上面的代码创建了包含值为 10 的单个元素的向量。但我需要初始化大小为 10 的向量。像这样:

如何通过课堂初始化来做到这一点?