当我在练习有关返回向量地址的示例代码(可以在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()函数可以返回应该可以打印的向量地址。
但是当我运行它时,结果是:“错误:'operator <<'不匹配(操作数类型为'std :: ostream {aka std :: basic_ostream}'和'std :: vector> ::迭代器{aka __gnu_cxx :: __ normal_iterator *,std :: vector>>}“
模板begin()函数可用于其他内置数组,但矢量存在问题。有人可以告诉我如何解决这个问题吗?