【发布时间】:2011-02-26 11:45:00
【问题描述】:
例如我有这样的数组:
name[0] = "Griffin";
name[1] = "David";
name[2] = "John";
name[3] = "Abigail";
然后我有按这个顺序排列的文件名
John
David
Abigail
Griffin
我如何确定哪个数组编号包含名称 John,只需读取它的名称,而无需为每个条目运行循环并检查语句,因为我会有更多名称。
【问题讨论】:
例如我有这样的数组:
name[0] = "Griffin";
name[1] = "David";
name[2] = "John";
name[3] = "Abigail";
然后我有按这个顺序排列的文件名
John
David
Abigail
Griffin
我如何确定哪个数组编号包含名称 John,只需读取它的名称,而无需为每个条目运行循环并检查语句,因为我会有更多名称。
【问题讨论】:
不要使用普通数组,而是使用std::map。
编辑:
简单的例子
map <string, int> name;
std::string arr[] = {"Griffin", "David", "John", "Abigail"};
for(int i=0;i < 3;++i)
{
name[arr[i]] = i;
}
std::cout <<name["John"]; //prints 2
【讨论】:
<map> 标头。