【发布时间】:2019-10-15 20:21:45
【问题描述】:
我有一个错误 _Has_unused_capacity() 向量... 不知道怎么分配动态内存
我尝试 push_back,但出现错误
vector< pair<int, int> > * v;
void Some_Function(){
int m=3;
int idx1=1;
int idx2=2;
int idx3=3;
for(int i = 0; i<m; i++) {
v[idx1].push_back(make_pair(idx2, idx3));
v[idx2].push_back(make_pair(idx1, idx3));
}
}
【问题讨论】:
-
只需使用
vector< pair<int, int> > v;而不是指针。如果您正确使用,std::vector将为您正确管理内存:v.push_back(make_pair(idx2, idx3)); -
这不是向量,而是指向向量的指针
-
为什么要尝试使用 C 风格的向量数组?不要这样做。根本不要使用 C 风格的数组。
-
使用向量的要点是避免使用指针。只需使用向量,而不是指向向量的指针。
标签: c++ memory vector new-operator allocation