2014-02-14 3 views
0

Как вы проводите поиск по определенной строке? И что бы вернуть этот поиск?Поиск строки в векторе?

Я установил следующее с именем, являющимся пользователем для поиска.

find(user_list.begin(), user_list.end(), name) 

Я не уверен, как реализовать это в функции bool, так как я не знаю, какое значение вернет значение.

Функция

bool BBoard::user_exists(const string &name, const string &pass) const{} 

, и я получаю много ошибок прямо сейчас о том, как он не может сравниться.

+1

Хм, это то, что [документация] (HTTP: // en.cppreference.com/w/cpp/algorithm/find) для. – jrok

+0

_ «Я не знаю, какое значение find вернется» _ - можно легко решить, ссылаясь на [documentation] (http://en.cppreference.com/w/cpp/algorithm/find). –

+0

std :: find возвращает итератор: std :: vector :: итератор, затем if (res_itr! = User_list.end()) {std :: cout << * res_itr; } – marcinj

ответ

2

Функция find возвращает итератор, который указывает на первую запись в вашем user_list, которая соответствует. Вы не пишите много кода, но в случае, если ваш код выглядит следующим образом:

#include <vector> 
#include <string> 
#include <algorithm> 

std::vector<std::string> user_list; 

Затем вы можете использовать find следующим образом:

std::vector<std::string>::iterator i = find(user_list.begin(), 
    user_list.end(), name) 
if (i == user_list.end()) { 
    // Not found 
} else { 
    // Found, *i is your string 
} 
Смежные вопросы