Когда я практикуюсь с примером кода об адресе вектора возврата, который можно использовать в качестве параметра в другой функции в книге Essential C ++, у меня возникает проблема.
Код выглядит следующим образом:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
template <typename T>
inline T* begin(const vector<T> &vec){
return vec.empty()?0:&vec[0];
}
int main(){
vector<string> veca{ "pooh", "piglet", "eeyore", "tigger" };
cout<<begin(veca)<<endl;
}
Функции begin () могут возвращать векторные адреса, которые должны быть напечатаны.
Но когда я запускаю его, получается: «ошибка: нет совпадения для оператора« << »(типы операндов:« std :: ostream {aka std :: basic_ostream} »и« std :: vector> :: » iterator {aka __gnu_cxx :: __ normal_iterator *, std :: vector>>} "
Функция шаблона begin () работает для других встроенных массивов, но имеет проблему с вектором. Может кто-нибудь сказать мне, как решить эту проблему, пожалуйста?