次のように定義されたベクトル内にベクトルがあります。
std::vector<std::vector<myObj>> some_list(list_size);
some_list のいくつかのエントリには要素があり、いくつかのエントリには要素がありません。3 つの要素を持つものはサイズ 3 で、4 つのものはサイズ 4 などです。たとえば、次のようになります。
some_list[0] {size=3}
some_list[1] {size=4}
しかし、ある時点で、次のような要素が 0 の空のエントリがあります。
some_list[14] {size=0}
その後、後続のすべてのエントリのサイズも 0 になります。
ベクターのサイズを変更して、そのようなエントリを除外し、要素を持つエントリのみを残そうとしています。でも、なぜかうまくいかない。ここに私が持っているものがあります:
int snum = 0;
for (std::vector<std::vector<myObj>>::iterator a_it = a_list.begin();
a_it != a_list.end(); a_it++) {
while (a_it->size() != 0) {
snum++;
}
}
a_list.resize(snum);