我正在尝试为计算机创建一个定价系统,并且我想创建两个向量,一个存储项目名称,另一个存储项目的价格。我的计划是有两种方法,“find_item”,它在向量内找到项目名称并返回其索引,以及“get_itemPrice”,它从 find_item 获取索引并获取价格。我的问题是提出一个代码,该代码将一个字符串对象放入向量中并返回其索引位置。
问问题
155 次
3 回答
6
您可以简单地使用std::find
. 它将返回一个迭代器,指向与您正在搜索的元素相等的第一个元素,或者end()
如果没有找到则返回。如果你真的需要它,你可以使用std::distance
它从中获取索引。
于 2013-02-20T21:16:45.340 回答
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
于 2013-02-20T21:17:39.583 回答
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.*/
}
于 2013-02-20T21:39:16.240 回答