Передача строки стринг из вектора в функцию в с++

есть вектор имен файлов с их путем, в цикле передается функции для подсчета значений из файла,так вот при передачи строки из вектора происходит ошибка в чем дело? Обязательные условия: 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())

→ Ссылка