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;
}
我尝试将vector视为一个对象并像上面那样对其地址进行cout但是失败了,那我该如何判断向量的地址呢。
答案 0 :(得分:2)
您可能希望尝试使用
编译代码,而不是使用gcc
g++ -std=c++14
然后它应该有效:https://ideone.com/y0DwdA。
我可以使用gcc重现的链接器错误很可能与描述的here编译器之间的差异有关。
正如@πάνταῥεῖ所指出的,编译器标志-std=c++11
也可以正常工作。
答案 1 :(得分:1)
使用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;
}
}