当前位置: 首页 > 知识库问答 >
问题:

C如何push_back数组int[10]到std::向量?

上官景铄
2023-03-14
#include <vector>
using namespace std;

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

Visual Studio 2015社区中的这段代码报告了一个编译错误:

错误(活动)没有重载函数“std::向量的实例

错误C2664'void std::vector

共有3个答案

阎涵忍
2023-03-14

我不确定你是说从数组初始化向量,如果是的话,这里有一种使用向量构造函数的方法

int s[] = {1,2,3,4};
vector<int> v (s,  s + sizeof(s)/sizeof(s[0]));
卫甫
2023-03-14

你可以这样做:

#include <iostream>
#include <vector>

int main()
{
    int t[10] = {1,2,3,4,5,6,7,8,9,10};

    std::vector<int*> v;

    v.push_back(t);

    std::cout << v[0][4] << std::endl;

   return 0;
}

更具体地说,在这个解决方案中,你实际上并没有将数组t的值存储到向量v中,你只是存储了指向数组的指针(甚至更具体地说,数组的第一个元素)

笪波鸿
2023-03-14

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

但我也不得不质疑向量包含数组的目的。无论这背后的原因是什么,都可能有更好的方法来实现同样的目标。

 类似资料:
  • 我是c语言的新手。当我运行代码时,出现以下错误:( 大Sorting.cpp:在函数int main(int, const char**)中:大Sorting.cpp:13: 22:错误:没有匹配函数调用std::向量 这是我的代码

  • 我正在尝试用java swing制作一个Tic-Tac-Toe程序,我已经制作了框架。如何让JButton数组中的按钮激活int数组?我希望int数组保存Tic-Tac-Toe网格中点的值,因此当按下按钮时,int数组中的对应点将是0或1,按钮的文本将更改为X或O。

  • 问题内容: 我正在尝试将字符串转换为整数数组,以便随后可以对它们执行数学运算。我在以下代码方面遇到麻烦: 这给了我一个“无法转换的类型”错误,要求:int []发现:char我还尝试了其他一些方法,例如Character.getNumericValue,并且直接对其进行了直接分配,而没有进行任何修改。在那种情况下,无论我使用哪种转换方法或(!)字符串的实际值是什么,它总是输出相同的垃圾“ [I @

  • 问题内容: 我正在尝试使用swig从python使用以下原型访问C函数: Swig创建.so没问题,我可以将其导入python,但是当我尝试使用以下命令进行访问时: 我得到以下回溯: 该指针应该是一个int数组,其大小由memoryCells定义 问题答案: 如果可以,请使用ctypes。更简单。但是,由于您要求输入SWIG,因此需要的是一个描述如何处理int *的类型图。SWIG不知道可以指向多

  • 我正试图使用串口从C#向Arduino发送一个数组。在C#中,首先是输入字符串 然后,我将其转换为int数组 然后,我将其转换为字节数组,通过串行端口发送 最后,我把它寄出去了 那么,应该由我的Arduino接收 所以recdata应该是一个int数组 但事实并非如此。当我将其打印到另一个串行端口进行检查时。。 我得到3个输出,而不是1个,就好像serialport先发送一个int,然后发送第二个

  • 我有一个整数向量: 考虑到将始终为偶数。 我只是想把相邻的元素转换成一对,像这样: i、 两个相邻的元件连接成一对。 我可以使用什么STL算法轻松实现这一点?有没有可能通过一些标准算法来实现这一点? 当然,我可以很容易地编写一个旧的索引for循环来实现这一点。但我想知道,使用基于范围的for循环或任何其他STL算法(如等)最简单的解决方案是什么样的。