无法获取正确类型的返回向量地址

时间:2019-01-04 12:38:31

标签: c++ vector

当我在练习有关返回向量地址的示例代码(可以在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()函数可用于其他内置数组,但矢量存在问题。有人可以告诉我如何解决这个问题吗?

0 个答案:

没有答案