【发布时间】:2017-02-05 10:32:05
【问题描述】:
当我编译以下代码(使用 -std=c++11 编译器标志)时,我收到(唯一的)错误消息:“'vec' is not a class, namespace or enumeration”。
#include <vector>
#include <iterator>
int main(){
std::vector<int> vec(10,1);
vec::iterator it;
return 0;
}
由于我没有收到任何其他错误消息,对我而言,这意味着一些名为“vec”的对象已被初始化,但不是作为向量,而是作为其他不是类且范围运算符可以用于的对象因此不能使用。
据我了解,我使用了以下构造函数(http://en.cppreference.com/w/cpp/container/vector/vector):
vector(size_type count,
const T& value,
const Allocator& alloc = Allocator());
它说这个构造函数“使用具有值值的元素的计数副本构造容器”,所以我希望创建一个包含 10 个“1”副本的向量,但我一定误解了一些东西,因此出现了问题。
我的推理哪里出错了,上面代码中的错误又出自哪里?
【问题讨论】: