首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于模板函数中向量迭代器的问题

关于模板函数中向量迭代器的问题
EN

Stack Overflow用户
提问于 2011-03-04 19:03:22
回答 5查看 22K关注 0票数 26

我正在尝试学习STL库,但我遇到了一个奇怪的问题。这段代码可以完美地编译:

代码语言:javascript
运行
复制
void Show(vector<int> myvec)
{
    vector<int>::iterator it;
    cout << "Vector contains:";
    for( it = myvec.begin(); it < myvec.end(); it++) 
    {
         cout << " " << *it;
    }
    cout << endl;
}

而这个在编译时会给我一条错误消息:

代码语言:javascript
运行
复制
template <class T> 
void Show2(vector<T> myvec)
{
    vector<T>::iterator it;
    cout << "Vector contains:";
    for( it = myvec.begin(); it < myvec.end(); it++)
    {
         cout << " " << *it;
    }
    cout << endl;
}

错误是:

代码语言:javascript
运行
复制
$ g++ hello.cpp
hello.cpp: In function ‘void Show2(std::vector<T, std::allocator<_Tp1> >)’:
hello.cpp:19: error: expected ‘;’ before ‘it’
hello.cpp:21: error: ‘it’ was not declared in this scope

这似乎是一个非常简单的错误,但我找不到它。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5192874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档