static_cast无法转换向量的地址
static_cast fail to cast the address of vector
vector<vector<int>> v;
vector<int> v0;
for(int i = 0; i < 5; i++){
v.push_back(v0);
}
for(int i = 0; i < v.size(); i++){
cout << static_cast<void const *>(&(v[i])) << endl;
}
我尝试将向量视为一个对象并像上面一样查询其地址,但失败了,那么我该如何获取向量的地址。
与其使用
gcc
,不如尝试使用
g++ -std=c++14
然后它应该工作:https://ideone.com/y0DwdA。
我可以使用 gcc 重现的链接器错误很可能与此处描述的编译器之间的差异有关。
正如@πάνταῥεῖ所指出的,编译器标志-std=c++11
也可以工作。
编译代码g++ -std=c++11 -Wall main.cc
:
#include <iostream>
#include <vector>
int
main()
{
using namespace std;
vector<vector<int>> v;
vector<int> v0;
for(int i = 0; i < 5; i++){
v.push_back(v0);
}
for(size_t i = 0; i < v.size(); i++){
cout << reinterpret_cast<size_t>(&(v[i])) << endl;
}
}
相关文章:
- 向量元素的引用地址与它所指向的向量元素的地址不同.为什么
- C++ 将地址保存为字符串的向量转换为新的向量
- 指向结构的指针向量的元素具有相同的地址
- 为什么迭代向量在 c++ 中给出固定地址?
- 获取向量中元素的地址
- pthread_mutex_t向量为所有互斥锁提供了相同的地址
- 类对象指针的向量:如何在指针地址获得价值?C 和SDL_RECT
- 循环向量引起的地址边界错误
- 在向量 (C++) 中保留插入元素的地址
- 在 c++ 中按地址传递向量
- 尝试将派生类对象地址分配给基类指针的向量
- 获取数组/向量末尾地址的未定义行为
- 获取 STL 向量C++的地址
- 将二进制文件读取到向量元素的地址中
- C 方法地址向量
- 是否可以在结构构造中将self的地址推送到向量
- 将对象的地址推送到向量后更改对象
- 将指针从一个向量复制到另一个向量;地址指出了变化
- 将对象的地址添加到循环中的向量中
- 类型类的向量(地址簿程序)