宣言したら
vector< vector <double > > V;
(3.0, 4.0)
最初の要素としてどのように挿入できますか?
その 2 次元ベクトルに 2 つの値を追加することはできません。その 2 次元ベクトルは、M x N の位置に double 型の値を 1 つだけ格納します。
あなたができることは、例えば構造体を作成することです:
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::make_pair
ベクトルに double のペアを挿入するために使用できます。
std::vector<std::pair<double, double>> V;
V.push_back(std::make_pair(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;
C++11 の場合:
vector<vector<double>> V;
V.emplace_back({3.0, 4.0});
std::vector
代わりにofを使用する方が理にかなっている場合はstd::pair
、次のようにすることができます。
std::vector<std::pair<double, double>> V;
V.push_back({3.0, 4.0});
ペアの要素へのアクセスは、V[0].first
またはのようになりますV[1].second
。
要素を既存のベクターに挿入するか、新しい空のベクターに挿入するかは明確ではありません。どちらの場合でも、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
}