事情是这样的,功能需要使用zlib对数据进行解压操作,使用到了vector的resize用于预设置存储解压后数据的buffer。
如果连续执行resize,resize会保留上一次设置的值,相当与文件的a+操作。
写了一个了例子
int main() {
std::vector<int> g_list1;
g_list1.resize(10);
for (int i = 0; i< 10; i++) {
g_list1[i] = i;
printf("%d\n",g_list1[i]);
}
g_list1.resize(20);
for (int i = 0; i< 20; i++) {
printf("%d\n",g_list1[i]);
}
return 0;
}
效果就是resize会保留之前的值