小编Lik*_*sic的帖子

struct Compiler Error向量的C++迭代器

我创建了一个struct包含两个变量的类型.我在a中使用这种数据类型vector,它再次存储在a中map,如下所示:

struct A {
    int x;
    Y y;
    A() {};
    A(int _x, Y _y) { x=_x, y=_y; };
};

typedef std::vector<A> LA;
typedef std::map<uint,LA> MB;

MB b;
Run Code Online (Sandbox Code Playgroud)

当我尝试使用迭代器时,例如

std::vector<LA>::iterator it = b[x].begin();
Run Code Online (Sandbox Code Playgroud)

编译器给出了这个错误:

错误:没有可行的从'__wrap_iter <A*>'转换为'__wrap_iter <std :: __ 1 :: vector <A,std :: __ 1 :: allocator <A >>>*>'std :: vector <LA> :: iterator it = b [x] .begin();

候选构造函数(隐式复制构造函数)不可行:没有已知的从'iterator'(又名'__wrap_iter <pointer>')转换为'const std :: __ 1 :: __ wrap_iter <std :: __ 1 :: vector …

c++ struct iterator vector

4
推荐指数
1
解决办法
4870
查看次数

标签 统计

c++ ×1

iterator ×1

struct ×1

vector ×1