我正在尝试为计算机创建定价系统,我想创建两个向量,一个存储项目名称,另一个是项目的价格。我的计划是有两个方法,“find_item”,它在向量中找到项目名称并返回其索引,以及“get_itemPrice”,它从find_item获取索引并获取价格。我的问题是提出一个代码,它接受一个向量内的字符串对象并返回其索引位置。
答案 0 :(得分:6)
您只需使用std::find
即可。它会将迭代器返回到第一个元素,该元素等于您要搜索的元素,如果没有找到,则返回end()
。然后,您可以使用std::distance
从中获取索引,如果您确实需要它。
答案 1 :(得分:0)
像这样:
vector<int> vect;
int i = 0;
for (vector<int>::iterator iter = vect.begin(); iter != vect.end(); ++iter)
{
if (*iter == vect)
break;
i++;
}
if (i == vect.size())
// not found
else
// i is your index
答案 2 :(得分:0)
如果你真的想让算法像这样做,但一般不应该尝试击败那些在stl中看到算法标题
unsigned find_str( const vector<string>& vec, const string& key ){
unsigned count = 0;
vector<string>::const_iterator it;
for ( it = vec.begin() ; it < vec.end(); it++ ){
if( *it == key)
return count;
count++;
}
/*throw not found error here.*/
}