-1

宣言したら

vector< vector <double > > V; 

(3.0, 4.0)最初の要素としてどのように挿入できますか?

4

4 に答える 4

2

その 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); 

それが役に立てば幸い。

于 2012-12-18T19:16:21.407 に答える
2

std::make_pairベクトルに double のペアを挿入するために使用できます。

std::vector<std::pair<double, double>> V; 
V.push_back(std::make_pair(3.0, 4.0));
于 2012-12-18T19:12:22.687 に答える
1

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

于 2012-12-18T19:13:57.083 に答える
1

要素を既存のベクターに挿入するか、新しい空のベクターに挿入するかは明確ではありません。どちらの場合でも、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

}
于 2012-12-18T19:12:15.450 に答える