Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;插入到双向量的数组_C++_Vector - Fatal编程技术网

C++ C++;插入到双向量的数组

C++ C++;插入到双向量的数组,c++,vector,C++,Vector,如果我申报 vector< vector <double > > V; vectorV; 如何插入(3.0,4.0)作为第一个元素?不清楚是要将元素插入到预先存在的向量中,还是插入到新的空向量中。在这两种情况下,您都可以使用std::vectorstd::initializer\u list构造函数来初始化或分配(视情况而定): #include <vector> int main() { std::vector<std::vector<

如果我申报

vector< vector <double > > V; 
vectorV;

如何插入
(3.0,4.0)
作为第一个元素?

不清楚是要将元素插入到预先存在的向量中,还是插入到新的空向量中。在这两种情况下,您都可以使用
std::vector
std::initializer\u list
构造函数来初始化或分配(视情况而定):

#include <vector>

int main()
{
  std::vector<std::vector<double>> v1;
  v1.push_back({3.0,4.0}); // push first element using initializer_list

  std::vector<std::vector<double>> v2(10);
  v2[0] = {3.0, 4.0}; // assign value to pre-existing vector

}
#包括
int main()
{
std::向量v1;
v1.push_back({3.0,4.0});//使用初始值设定项_list推送第一个元素
std::载体v2(10);
v2[0]={3.0,4.0};//为预先存在的向量赋值
}
您可以使用在向量中插入一对双精度:

std::vector<std::pair<double, double>> V; 
V.push_back(std::make_pair(3.0, 4.0));
std::vector V;
V.推回(标准:制造成对(3.0,4.0));
在C++03中:

vector<vector<double>> V;
V.push_back(std::vector<double>(2));
V[0][0] = 3.0;
V[0][1] = 4.0;

访问该对中的一个元素将类似于
V[0]。第一个
V[1]。第二个

您不能向该二维向量添加2个值,该二维向量仅在M x N位置存储一个double类型的值

您可以做的是创建一个结构,例如:

struct SPoint
{
  double X;
  double Y;
};
然后添加如下点:

vector< vector <SPoint > > v; 
SPoint point = {3.0, 3.4};

v.push_back ( std::vector<SPoint >()
v[0].push_back(point); 
vectorv;
SPoint point={3.0,3.4};
v、 推回(std::vector()
v[0]。推回(点);

希望有帮助。

我认为类型为
std::pair
的向量更合适。@HunterMcMillen它比向量的向量快吗?还有,我如何将一对插入向量?
v.push_back(make_pair(3.0,4.0))
我如何在数组中引用它?通常我使用数组[I][j],但现在这似乎不起作用
v[I].第一个
v[i]。第二个
我意识到OP可能不知道他们在问什么,但这并不能回答目前的问题。也许你可以解释一下为什么这是一个解决方案?@juanchopanza OP想将长度为2的向量插入另一个向量中。当你可以使用pair时,没有理由使用另一个向量(已经是2号了)。可能OP需要通过
[][]
访问,在这种情况下,
std::array
的向量可能更合适。@juanchopanza可能是,但他们没有澄清。如果这两个数字以某种方式相关,配对更有意义;例如,一个(x,y)点。
struct SPoint
{
  double X;
  double Y;
};
vector< vector <SPoint > > v; 
SPoint point = {3.0, 3.4};

v.push_back ( std::vector<SPoint >()
v[0].push_back(point);