注册 登录
编程论坛 C++教室

迭代器iterator问题

xxmmxmxm 发布于 2013-09-11 19:06, 594 次点击
#include<iostream>
#include<vector>
class my
{
private:
    int age;
};
int main()
{
    using std::cout;
        using std::vector;
    vector<my>::iterator pr;
    return 0;
}

vc6.0 编译不通过
头文件添加#include<iterator>
main函数里添加using std::iterator;
编译也不能通过


将using std::vector;换成    using namespace std;就可以通过了,这是为什么???
不想用using namespace std这个代码,命名空间里出了vector还有什么名称是没有声明的吗
好吧,我是菜鸟
7 回复
#2
peach54602013-09-11 19:13
vector是类名还是命名空间名?
#3
xxmmxmxm2013-09-11 19:35
回复 2楼 peach5460
#include<iostream>
#include<vector>
class my
{
private:
    int age;
};
int main()
{
    using std::cout;
    using std::vector;
    std::vector<my>::iterator pr;  //在vector之前用std声明vector名称就可以编译了,可我上一句已经声明vector了,这里应该不用std::去声明了把,为什么还要声明:
    return 0;
}
#4
xxmmxmxm2013-09-11 19:37
照着c++ Primer Plus书上的代码打的都编译不通过,无语,看c++primer又看不懂
#5
xxmmxmxm2013-09-11 19:43
虽然能编译了,但是不明白,哪个懂的朋友麻烦说个明白阿,我来结贴
#6
lonmaor2013-09-11 19:56
C++ Primer书里面说的很清楚吧
plus没看过。就相当于for循环里的自增变量,不过功能要强大许多。
程序代码:
vector<int> ivec;
...
for(vector<int>::iterator iter = ivec.begin(); iter!=ivec.end(); iter++)
{
...
}
#7
yss282013-09-11 23:22
回复 楼主 xxmmxmxm
使用using std::vector;可以编译运行,你的vc6.0版本太低了,和c++ primer使用的编译器不一样
#8
peach54602013-09-12 08:24
以下是引用yss28在2013-9-11 23:22:06的发言:

使用using std::vector;可以编译运行,你的vc6.0版本太低了,和c++ primer使用的编译器不一样

嗯,这句话说的是对的...
1