C++ 如何向数组向量添加值?
我需要创建一个向量,其中每个值实际上是四个值。好的谷歌让我找到了这些网页: 从这些线程中,我相信使用以下语法是最佳的:C++ 如何向数组向量添加值?,c++,arrays,vector,C++,Arrays,Vector,我需要创建一个向量,其中每个值实际上是四个值。好的谷歌让我找到了这些网页: 从这些线程中,我相信使用以下语法是最佳的: std::vector<std::array<unsigned int, 4>> arrayVector; 而该部分并未汇编: 严重性代码说明项目文件行抑制状态 错误(活动)重载函数“std::vector::push_back[with _Ty=std::array,_Alloc=std::allocator>]”的实例与参数列表不匹配 我还尝
std::vector<std::array<unsigned int, 4>> arrayVector;
而该部分并未汇编:
严重性代码说明项目文件行抑制状态
错误(活动)重载函数“std::vector::push_back[with _Ty=std::array,_Alloc=std::allocator>]”的实例与参数列表不匹配
我还尝试将int数组作为一个单独的变量创建,并将该变量传递给push_back,结果也是一样的
<我使用微软VisualStudio社区2015,我不是通常选择C++的人,所以我可能缺少一些明显的东西。提前谢谢。试试看
arrayVector.push_back(std::array<unsigned int, 4>{0, 1, 2, 3});
arrayVector.push_back(std::array<unsigned int,4>{0,1,2,3});
试试这个:
arrayVector.push_back({{ 0, 1, 2, 3 }});
例如,较旧版本的Clang(例如)需要额外的大括号——原因似乎是您正在
std::array
中初始化C样式的数组,它似乎为我编译了……您的代码给了我一个在其他线程中没有人提到的重要线索:#include:D可能就是它。我不想检查它,因为使用std::array的第一行没有编译错误。这就产生了两个错误:“不允许使用不完整的类型”和“使用g++5.4为我编译的初始化值太多”。p、 我刚刚看到你对头文件的评论。我想每个人都认为它被包括在内(可以说是在幕后)。干杯,似乎对我没用。不过,这可能会帮助其他人,谢谢!
arrayVector.push_back({{ 0, 1, 2, 3 }});