我正在尝试制作一个向量,然后输入一个while循环,使用该向量,然后在每个循环结束时调整向量的大小。所以我决定my_vector.clear()
在循环结束时制作,在循环my_vector.resize(newSize)
开始时制作。这是一个示例代码:
typedef struct my_type{
int numNextDom;
bool knockedDown;
} my_type;
int main (int argc, char * const argv[]) {
int i, testCase, totalDom, numLines, num_dom=0, num_next_dom=0, aux_map_int = 0, linesScanned = 0;
bool firstTime=true;
std::cin>>testCase;
std::vector<my_type> my_vector;
while(aux_map_int < testCase){
std::cin>>totalSize>>numLines;
my_vector.resize(totalSize);
while (linesScanned < numLines) {
std::cin>>num_dom>>num_next_dom;
if(firstTime){
my_vector[0].numNextDom = totalSize;
my_vector[0].knockedDown = true;
firstTime=false;
}
my_vector[num_dom].numNextDom = num_next_dom;
my_vector[num_dom].knockedDown = false;
linesScanned++;
}
std::cout << giveResult(my_vector) << std::endl;
aux_map_int++;
my_vector.clear();
}
return 0;
}
所以你看,在我使my_vector.clean()
向量变为 os 大小 1 之后,但是当循环重新完成时,my_vector
大小保持为 1 并且不执行my_vector.resize(totalSize)
. 我错过了什么吗?