C++开发问题记录2021_12
//定义了全局变量map和vv
unordered_map <int, std::vector<T>*> map;
std::vector<std::vector<T>> vv;
//向vv中插入std::vector<T>,将map[0]指向vv[0]的引用
T mesh;
std::vector<T> v;
v.push_back(mesh);
vv.push_back(v);
map.emplace(0, &(vv[0]));
//接下来再次向vv中插入std::vector<T>,vv因为容量不够所以需要申请新的内存空间,并将源数据复制到新地址
//而map中存放的是数组的引用,vector的扩容操作将导致原有引用地址失效,map中的数组指针将指向无效内存
T mesh;
std::vector<T> v;
v.push_back(mesh);
vv.push_back(v);
map.emplace(1, &(vv[1]));
//此时查看(*map[0]).size,将会看到vector的容量上限,而非vv[0]的大小
int num = (*map[0]).size;

浙公网安备 33010602011771号