C++ 如何将数组 int[10] push_back 到 std::vector<int[10]>?

标签 c++ arrays vector stl

#include <vector>
using namespace std;

vector<int[60]> v;
int s[60];
v.push_back(s);

此代码在 Visual Studio 2015 社区中报告编译错误:

错误(事件)没有重载函数实例“std::vector<_Ty, _Alloc>::push_back [with _Ty=int [60], _Alloc=std::allocator]”匹配参数列表

错误 C2664“void std::vector>::push_back(const int (&)[60])”:无法将参数 1 从“int”转换为“int (&&)[60]”

最佳答案

改为使用 std::array:

#include <vector>
#include <array>

using namespace std;

int main()
{
    vector<array<int, 10>> v;
    array<int, 10> s;
    v.push_back(s);
    return 0;
}

但我也不得不质疑拥有一个包含数组的 vector 的目的。无论其背后的原因是什么,都可能有更好的方法来实现相同的目标。

关于C++ 如何将数组 int[10] push_back 到 std::vector<int[10]>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38215108/

相关文章:

c++ - QGraphicsItem绘图问题

c++ - 高斯生成的内核和书中给出的不一样。为什么?

php - 用换行符分解字符串

java - 如何使用paintComponent(Graphics g)绘制存储在 vector 中的对象

c++ - 在指向对象的指针 vector 上的 for 循环中的段错误

c++ - 如何在 C++ 中跨文件使用命名空间?

c++ - 如何在 C++ 中以小写形式将文本从数组的一维传输到另一维?

char数组中的C随机字符

c++ - 为什么我的程序会跳过第一个函数? (初级 C++)

c++ - std::vector<> 使用不初始化基元和转发 construct_back 的 resize() 派生