有没有办法把一个向量推回到一个向量?c++

Is there any way to push back a vector into a vector? c++

本文关键字:一个 向量 c++ 有没有      更新时间:2023-10-16

例如,如果我有一个或多个2D向量,而我只想将它们存储在数据库中。

 vector<vector<double>> one2DVector;
 vector<vector<double>> two2DVector;
 //Obviously can't do that but this is what I want to do
 vector<vector> dataBase;
 dataBase.push_back(one2DVector);
 dataBase.push_back(one2DVector);

您需要这样声明:

vector<vector<vector<double>>> dataBase;

请注意,如果使用C++98而不是C++11,则需要在>括号之间放置空格。

vector< vector< vector <double> > > database;
vector<vector<double>> one2DVector;
vector<vector<double>> two2DVector;
...
//insert elements into two-dimension arrays.
...
database.push_back(one2DVector);
database.push_back(two2DVector);

您似乎希望dataBase是2d向量的向量。如果是这种情况,那么你必须这样定义

vector<vector<vector<double> > > dataBase;

您应该尝试使您的数据库成为

vector< vector< vector <double> > >

而不是CCD_ 4(不管是什么)。

Typedefs可能有助于提高的可读性

typedef vector<vector<double> > vec_2D;
vec_2D one2DVector;
vec_2D two2DVector;
vector<vec_2D> dataBase;

请记住,这个dataBase将保存2D向量的副本,我猜这不是你真正想要的(但可能是)。您可能需要考虑将数据库作为指针容器或适合容器的智能指针(如shared_ptr)。

 vector<vector<double>> one2DVector;
 vector<vector<double>> two2DVector;
 //Obviously can't do that but this is what I want to do
 vector<vector<vector<double> > > dataBase; //HERES THE EDIT
 dataBase.push_back(one2DVector);
 dataBase.push_back(one2DVector);

信息技术应该工作良好

然而,如果你想做的是连接矢量,那么你可以做。

vector<vector<double>>  database(one2DVector);
database.insert(database.end(), two2DVector.begin(), two2DVector.end());

您有一个vector<double>的向量,但您正试图推动vector<vector>