在struct中包含map然后是结构数组是否正确?
struct node { //struct node
std::map<int ,int> mymap;//stl map within struct
};
struct node n[10]; //array of struct node
然后如何初始化n并引用其中的地图? 如何让迭代器在mymap的struct中映射? 任何最好的方式?
答案 0 :(得分:1)
糟糕或好主意是基于意见的。但是,这没有错。
std::map
不需要初始化。默认构造函数将为您完成。
如何访问地图?
for(size_t i=0;i<10;++i){
n[i].mymap//.something
}
答案 1 :(得分:0)
private void cboxcos_SelectionChangeCommitted(object sender, EventArgs e)
{
using (var context2 = new tvdm())
{
var cus = context2.tblContacts
.Where(c => c.ClientID == 15)
.Select(c => new {c.LastName, c.FirstName, c.JobTitle, c.Telephone, c.Mobile, c.EMail })
.OrderBy(p => p.LastName)
.ToList();
dataGridView1.DataSource = cus;
}
}
创建一个默认初始化的10 struct node n[10];
个数组。由于node
有默认构造函数,std::map
中的每个node
都会构建地图默认值。
要访问地图,只需使用
即可n
请记住,数组基于0索引,因此n[some_valid_index].mymap//.some_member_function;
需要在some_valid_index
范围内
答案 2 :(得分:0)
有一个静态初始化示例:
node n[3] = {
{
{ {1,2}, {3,4} }
},
{
{ {1,2}, {3,4} }
},
{
{ {1,2}, {3,4} }
}
};
在n声明之前删除“struct”。 以及如何访问这样的地图元素:
n[1].mymap[1] // = 2
n[2].mymap[3] // = 4
需要指定现代c ++语言标准,对于gcc命令行将是这样的:
g++ -std=c++0x main.cpp