我需要能够一次填充列表,然后快速返回项目的索引。例如,如果我在列表中有10个人,我需要能够查找该人并在列表中返回他们的号码(1-10)。我想到了几种不同的方法,但到目前为止还没有任何方法。我有一个填充了我的数据的向量现在我只需要能够到达索引。虽然如果有人有更好的想法我不愿意倾听,我不会设置矢量。 感谢。
答案 0 :(得分:0)
欢迎使用Stackoverflow。
对于一个小的列表,它并不重要。通常,虽然您将从有序集合中获得更好的查找时间。我建议std::set。如果这在您的方案中不起作用(例如,您想自己确定订单),那么std::map可能会更好。
编辑*
正如你在评论中澄清的那样,你想要的只是一个向量的索引,那么我会做这样的事情。
int main() {
vector<string> v;
vector<string>::iterator it;
v.push_back("a");
v.push_back("b");
v.push_back("c");
v.push_back("d");
it=find(v.begin(),v.end(),"c");
if(it!=v.end()){
int index = distance(v.begin(), it);
cout<<"found "<<index<<endl;
}
else{
cout<<"not found"<<endl;
}
return 0;
}
很抱歉,如果我的格式很奇怪,我不是一个真正的cpp程序员