0

我正在尝试为计算机创建一个定价系统,并且我想创建两个向量,一个存储项目名称,另一个存储项目的价格。我的计划是有两种方法,“find_item”,它在向量内找到项目名称并返回其索引,以及“get_itemPrice”,它从 find_item 获取索引并获取价格。我的问题是提出一个代码,该代码将一个字符串对象放入向量中并返回其索引位置。

4

3 回答 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 回答