如果我声明
vector< vector <double > > V;
如何插入(3.0, 4.0)
作为第一个元素?
您可以使用std::make_pair
在向量中插入一对双精度数:
std::vector<std::pair<double, double>> V;
V.push_back(std::make_pair(3.0, 4.0));
您不能向该 2d 向量添加 2 个值,该 2d 向量仅在 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);
希望能帮助到你。
目前尚不清楚您是将元素插入到预先存在的向量中,还是插入到新的空向量中。无论哪种情况,您都可以根据需要使用std::vector
std::initializer_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
}
在 C++03 中:
vector<vector<double>> V;
V.push_back(std::vector<double>(2));
V[0][0] = 3.0;
V[0][1] = 4.0;
在 C++11 中:
vector<vector<double>> V;
V.emplace_back({3.0, 4.0});
相反,如果使用 a std::vector
of std::pair
s 更有意义,您可以这样做:
std::vector<std::pair<double, double>> V;
V.push_back({3.0, 4.0});
访问该对中的一个元素看起来像V[0].first
或V[1].second
。