在访问向量<bool>中元素的地址时获取临时地址
taking address of temporary while accessing address of a element in vector<bool>
我只在访问bool向量中的元素地址时得到警告。对于其他数据类型的vector,如int,则不会得到任何警告。
如
vector<bool> boolVect;
boolVect.push_back(false);
if (boolVect.size() > 0) {
cout << &boolVect[0] << endl;
}
我得到警告"获取临时" at语句的地址"cout <<, boolVect [0] & lt; & lt;endl;"
有人能澄清一下吗?
std::vector<bool>
被破坏(参见http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=98或替代vectorstd::vector<T>
的专门化,但是单个元素被存储为打包位。因此,您不能获取单个元素的地址。因此,它真的很烦人。
vector<bool>
是标准vector
的模板特化。在正常的实现中,它节省了空间,每个bool
只占用一个位。为方便起见,您可以获得一个临时对象作为您无法处理的单个位的引用。
相关文章:
- 如何在C++中获取该对象的类声明中对象的地址?
- 如何使用 Boost Asio 在 Android 上获取我的本地 udp IP 地址?
- 如何获取C++字符数据类型的地址
- 如果 const 不分配内存,为什么我可以获取 const 的地址?
- 如何在 c++ stl 中获取列表中被推回的元素的地址,在常量时间内?
- 是否可以在C++中获取 CHAR 的有效十六进制地址?
- 动态获取 esp32 的 mac 地址并在以太网库中使用它.
- 如何根据指针地址获取指针内容
- 从对象及其成员的地址获取指向成员的指针
- 如何从地址获取字符串?
- 从内存地址获取值
- PIN从指令地址获取程序集操作码
- 使用数组的地址获取过期指针
- 从调用堆栈地址获取函数参数
- 从IP地址获取完整的计算机名称,例如 abc.xyz.xvvx.net
- 如何通过地址获取元组中元素的索引
- 从成员的地址获取成员的索引
- 从IPv4地址获取网络接口名称
- 如何通过符号在内存中的地址获取有关符号的更多信息
- 正在WinDbg中按地址获取类型