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

有关vector::size_type的问题

xunmi_1993 发布于 2012-07-03 21:26, 2772 次点击
#include <vector>
#include <iostream>
using std::vector;
using std::cout;
using std::cin;

int main()
{
    vector<int> v1;
    int a;
    while(cin>>a){
        v1.push_back(a);
    }
    for(vector<int>::size_type i=0;i!=v1.size();i++)
    {
        cout<<v1[i]<<"  ";
    }
}
很简单的一个输入输出的程序但提示:'vector<int,class std::allocator<int> >' : is not a class or namespace name;
之后我加了 “using namespace std;”就正确了
哪位大侠能告诉我这是为什么啊!我看的书《c++ primer4》上明明就是那样写的。
10 回复
#2
honter2012-07-03 21:42
书的最前面已经明确的说了在后面省略using namespace std;了,楼主好好看看
#3
rjsp2012-07-04 08:25
vc9 和 g++4.6.1 编译通过
#4
xunmi_19932012-07-04 14:43
回复 2楼 honter
没有啊!书上是说在前面省略了 #include <vectoe>和 using std::vector;
#5
xunmi_19932012-07-04 14:45
using namespace std和#include <vector>、using std有什么区别啊!
#6
xunmi_19932012-07-04 14:46
回复 3楼 rjsp
我用的是vc++6.0难道是编译器的问题?
#7
一只小蚂蚁2012-07-04 22:29
受教了 一直没用过size_type
数据结构里都有迭代器啊
position iterator
#8
peach54602012-07-14 15:33
size_type说白了就是个uint...属于容器长度的一个特殊类型

至于using namespace std;
这是使用命名空间啊...标准库的类和函数都在命名空间里
#9
pangding2012-07-15 00:16
回复 6楼 xunmi_1993
vc6.0 问题多多。除了已知很多 bug 以外,还和 c++ 标准有多处矛盾。
#10
peach54602012-07-15 07:08
回复 9楼 pangding
vc6对STL的支持不全面...直到2003才全面支持STL...不过VC6是个经典版本,用的人很多...
#11
liudw22012-07-16 00:36
我用code::blocks编译器可以编译通过
1