Передача строки стринг из вектора в функцию в с++
есть вектор имен файлов с их путем, в цикле передается функции для подсчета значений из файла,так вот при передачи строки из вектора происходит ошибка в чем дело? Обязательные условия: 1)передавать нужно всегда первое значение из списка 2)функция counting не должна изменять переданный ей аргумент
std::vector<std::string> files;
...
while(!files.empty()) {
Counting(files.begin());
...
// Удалить первый элемент
files.erase(files.begin());
}
...
void Counting(const std::string &name){
...
выводит ошибку
main.cpp|25|error: invalid initialization of reference of type 'const string&' {aka 'const std::__cxx11::basic_string<char>&'} from expression of type 'std::vector<std::__cxx11::basic_string<char> >::iterator' {aka '__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > >'}|
Ответы (1 шт):
Автор решения: gbg
→ Ссылка
Проблема в том, что begin() возвращает не элемент вектора (строку в вашем случае), а итератор, показывающий на этот элменет. Так что вам надо его разименовать - Counting(*files.begin()), а еще лучше, использовать другой метод
Counting(files.front())