vector 是 模板类, vector<int> 是由int类型具体化实体类.
使用 using std::vector; 是为了在程序中不用 每次都带上 std:: 而可以直接 vector<...>
你程序中, 已经 using std::vector; 了, 没有任何必要 再 using std::vector<int>;
---------------
当然不会被占用.
vector 每次 push_back 的时候 会检查 自己的 size 和 capacity(容量), 如果 两者相等了, 就会重新申请一个两倍于现在大小的内存, 然后把元素copy过去.
如果你发现 vector中第一个值的地址没有变动(没有发生copy), 那证明 后面还有足够的内存 供 vector push_back. 不用担心你的问题.
追问但是将using std::vector;注释起来会报错('iterator' : undeclared identifier)。还有,iterator与vector 又是什么关系呢,iterator是一个类型吗,迭代器感觉一点都没有学懂……
追答因为你贴的是图片, 我没有测试你的代码.
但是理论上讲, 肯定是没有问题的. 至于会报错. 我只有 疑惑了.
记住, 学习C++ 模板, 不要使用 vc6... 它自带的编译器很垃圾, 对模板的支持一点都不好.
iterator 是一个类型, 每个容器都有自己的 迭代器. 它们因为和 容器的相关性很大, 所以直接定义在 每个容器的内部 . 所以使用的时候, 才会像这样
vector::iterator iter = vi.begin();
建议您还是用其它的编译器试试吧.
dev-cpp, codeblocks 这些ide 都自带的 gcc 编译器, 而且可以更新 mingw的版本. 我现在使用的就是gcc5.1, 最新的了. 对C++11, c++14都完全支持了.