当我这样做:
std::vector<int> hello;
Run Code Online (Sandbox Code Playgroud)
一切都很好.但是,当我把它作为引用的向量时:
std::vector<int &> hello;
Run Code Online (Sandbox Code Playgroud)
我得到了可怕的错误
错误C2528:'指针':指向引用的指针是非法的
我想把一堆结构的引用放到一个向量中,这样我就不必插入指针了.为什么矢量会对此发脾气?我唯一的选择是使用指针向量吗?
拥有对象引用的向量是否合法,如下所示?
vector<Agent&> seenAgents;
Run Code Online (Sandbox Code Playgroud)
例如,哪些会被场景中的一些但不是所有对象填充?
我有一个Agent对象的向量,但上面概述的向量应该只包含每个代理当前可以看到的对象 - 这意味着将一直添加和删除引用.
这是语言允许的吗?此外,还有什么我需要注意的吗?如果我从向量中删除引用它会持续存在吗?这是内存泄漏吗?
我似乎在声明向量的行上得到了这个错误:
error C2528: 'pointer' : pointer to reference is illegal
Run Code Online (Sandbox Code Playgroud)
这是直接与线路有关还是最有可能发生在其他地方?它正在构造函数初始化列表中初始化,如下所示:
seenAgents(vector<Agents&>())
Run Code Online (Sandbox Code Playgroud)