イテレーターを使用したマップのC ++ベクトルの方法

c++
イテレーターを使用したマップのC ++ベクトルの方法

mapのベクトルにrowID、またはvaluepair Setの各行の反復子を設定するにはどうすればよいですか

たとえば

typedef std::map mapDB;
mapDB mapDB_colVal;
typedef mapDB::iterator mapDB_iter ;
vector > mapDB_vec;

//populate mapDB_colVal 1st row
mapDB_colVal["X"]="APPLE";
mapDB_colVal["Y"]="RED";

How can I assign/populate 1st row mapDB_vec with mapDB_colVal

//populate mapDB_colVal 2nd row
mapDB_colVal["X"]="PEAR";
mapDB_colval["Y"]="RED";

任意のアイデアは最も感謝されるでしょう。

ありがとう

Leo

  0  0


ベストアンサー

要するに:

mapDB_vec.push_back(std::make_pair(0, mapDB_colVal));

より長いです:

そのrowIDは必要ありません。ベクトルインデックスで十分です。

より長く:

struct Row {
    std::string x;
    std::string y;

    Row(std::string const& x_, std::string const& y_): x(x_), y(y_)
    {}
};

vector mapDB_vec;
mapDB_vec.push_back(Row("Apple", "Red"));
mapDB_vec.push_back(Row("Pear", "Red"));

2


mapDB_vec db;

//populate mapDB_colVal 1st row
mapDB_colVal["X"]="APPLE";
mapDB_colVal["Y"]="RED";
db.push_back(make_pair(some_row_id, mapDB_colVal));

//populate mapDB_colVal 2nd row
mapDB_colVal["X"]="PEAR";
mapDB_colval["Y"]="RED";
db.push_back(make_pair(some_other_row_id, mapDB_colVal));

必要な行IDがわかりません。 それらが単なる連番である場合、ベクトルにより位置によって要素を識別できるため、それらは冗長に見えるでしょう。

0


タイトルとURLをコピーしました