如何在向量中搜索并获取c ++中元素的位置?

时间:2014-01-09 04:56:38

标签: c++

int search(vector<int>& numbers, int numToFind){
    int numberSize = numbers.size();
    for (int i = 0; i < numberSize; i++){
        if(numbers.at(i) == numToFind){
            return i;
        }
        else{
            return -1;
        }
    }
}

我的函数搜索应该通过numToFind的向量搜索,如果找到它,它将返回位置。但是,当我运行这个函数时,它一直给我-1。

1 个答案:

答案 0 :(得分:5)

你太早回来了-1。您的函数甚至不会搜索向量的其余部分。

int search(std::vector<int>& numbers, int numToFind){
    int numberSize = numbers.size();
    for (int i = 0; i < numberSize; i++){
        if(numbers.at(i) == numToFind){
            return i;
        }
        // A return statement here would cut the loop too early
    }
    return -1; // Didn't find anything
}

如果您想要基于一个索引,请改为返回i + 1