私たちは、など、ベクトル割り当てコンテナをマッピングするために書き、彼らはしばしば冗長なコードの多くを書きます
このような状況は、我々がするために必要なものは、以下のmap<int, Node> node_map
ような容器を初期化しますが、マップ構造もあります。
その後、彼は再び同じ初期化コードの上に書き込み側とを繰り返し始めた、このようなコードだけで繰り返されていないとエラーが発生しやすいです
次のとおりです。
struct Node {
int a;
float b;
string c;
}st;
int main (){
map<int, Node> node_map;
Node node;
node.a = 1;
node.b = 1.1;
node.c = "adf";
node_map[0] = node;
Node node1;
node1.a = 2;
node1.b = 1.1;
node1.c = "2adf";
node_map[1] = node1;
Node node2;
node2.a = 3;
node2.b = 3.1;
node2.c = "3adf";
node_map[2] = node2;
Node node3;
node3.a = 3;
node3.b = 3.1;
node3.c = "3adf";
node_map[3] = node3;
for (pair<int, Node> node_pair : node_map) {
cout << node_pair.second.c << endl;
}
}
次のように私たちが実際にコードを合理化された初期化リスト構造を、使用できる機能、コードは次のとおりです。
struct Node {
int a;
float b;
string c;
}st;
int main (){
map<int, Node> node_map = {
{0,{1, 1.1, "adf"}},
{1,{2, 1.1, "1adf"}},
{2,{3, 1.1, "2adf"}},
{3,{3, 1.1, "3adf"}},
};
for (pair<int, Node> node_pair : node_map) {
cout << node_pair.second.c << endl;
}
}