Why can#39;t I make a vector of references?(为什么我不能制作参考向量?)
问题描述
当我这样做时:
std::vector<int> hello;
一切都很好.但是,当我将其设为引用向量时:
Everything works great. However, when I make it a vector of references instead:
std::vector<int &> hello;
我收到像
错误 C2528:指针":指向引用的指针非法
error C2528: 'pointer' : pointer to reference is illegal
我想将一堆对结构的引用放入一个向量中,这样我就不必干预指针了.为什么vector会对此大发雷霆?使用指针向量是我唯一的选择吗?
I want to put a bunch of references to structs into a vector, so that I don't have to meddle with pointers. Why is vector throwing a tantrum about this? Is my only option to use a vector of pointers instead?
推荐答案
vector 这样的容器的组件类型必须是 可分配.引用是不可赋值的(你只能在声明时初始化它们一次,并且以后不能让它们引用其他东西).其他不可分配的类型也不允许作为容器的组件,例如vector 是不允许的.
The component type of containers like vectors must be assignable. References are not assignable (you can only initialize them once when they are declared, and you cannot make them reference something else later). Other non-assignable types are also not allowed as components of containers, e.g. vector<const int> is not allowed.
这篇关于为什么我不能制作参考向量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:为什么我不能制作参考向量?
基础教程推荐
- 如果我为无符号变量分配负值会发生什么? 2022-01-01
- 通过引用传递 C++ 迭代器有什么问题? 2022-01-01
- 为什么派生模板类不能访问基模板类的标识符? 2021-01-01
- 为什么 RegOpenKeyEx() 在 Vista 64 位上返回错误代码 2021-01-01
- 为什么 typeid.name() 使用 GCC 返回奇怪的字符以及如 2022-09-16
- 初始化列表*参数*评估顺序 2021-01-01
- 非静态 const 成员,不能使用默认赋值运算符 2022-10-09
- GDB 显示调用堆栈上函数地址的当前编译二进制文 2022-09-05
- 我应该对 C++ 中的成员变量和函数参数使用相同的名称吗? 2021-01-01
- CString 到 char* 2021-01-01
