有没有办法把一个向量推回到一个向量?c++
Is there any way to push back a vector into a vector? c++
例如,如果我有一个或多个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>
。
相关文章:
- 给定一个向量,如何找到该向量的所有子集和的原始索引
- 为什么一个向量上的多线程操作很慢
- 将一个向量插入另一个向量的某个位置
- 将指向给定子类的指针从一个向量复制到另一个向量
- C++ STD 函数运算符:有没有一种方法可以通过函数将一个向量映射到另一个向量上?
- 将向量之间的数字放在另一个向量之间<vector>>如果两个数字的差值为 1
- 如何在不复制的情况下将一个向量移动到另一个向量中
- 使用 std::transform 将向量向量 (a) 添加到另一个向量向量 (b)
- 如何按另一个向量的方向调整一个向量?
- 将字符向量复制到另一个向量
- 制作一对共享指针并推送一个向量
- 你能把一个向量<int64>投射到一个向量<uint8>吗
- 大家好,当一个类有一个向量作为它的数据成员时,为什么它的大小总是24?
- 为什么我们需要在优先级队列声明中添加一个向量作为参数?
- 如何将所有指针从一个向量移动到另一个向量?
- 将一个向量映射到不同的对,即使向量映射到每对时是不同的?
- 生成一个类Name_class并将两种数据类型存储在一个向量中
- 使用步骤c++构建一个向量
- 如何从另一个向量中的另一个第一元素减去向量中的第一元素
- 将一个向量对放在一个无序映射与一个映射中