【发布时间】:2021-04-07 10:20:02
【问题描述】:
以下向量声明:
vector<string> valid_escape = {'n', 't', 'r', '0', '\\'};
导致错误:
error: could not convert ‘{'n', 't', 'r', '0', '\\'}’ from ‘<brace-enclosed initializer list>’ to ‘std::vector<std::__cxx11::basic_string<char> >’
关于这个问题的其他 SO 帖子得出的结论是,它是 4.7 版本的 gcc 中的一个错误,或者编译中没有提到 -std=c++11 标志。
我的 gcc 版本是 7.3.0,我用上面的标志编译。
出于好奇和狭隘的希望,我尝试将 vector 替换为 list 并得到了类似的错误。
【问题讨论】:
-
'n'是一个字符,而不是一个字符串。"n"是一个字符串。 -
好的,您已经描述了您尝试编写代码时发生的事情,以及您所做的一些研究和调查的结果。但是您的问题是什么?
-
您想要 5 个字符串,每个字符串的大小为 1?还是一个有 5 个字符的字符串?
标签: c++ vector initializer-list