【发布时间】:2017-06-25 08:46:06
【问题描述】:
例如,
vector<bool> arr(10);
arr[0]=true;
然后,我想重置向量。 所以,
arr.clear();
我希望所有元素为零的向量,因为 False 为零。
printf("%d", arr[0]);
但是,结果数 > 0;
即使清除前的值与清除后的值相同!
发生了什么?
// Test Code
vector<bool> arr(101);
arr[1] = true;
printf("Before Value : %d\n", arr[1]);
arr.clear();
printf("Result : %d\n", arr[1]);
// Test Code
vector<bool> arr(101);
printf("asdf : %d\n", arr.size());
// Test Code
arr[1] = true;
printf("Before Value and size : %d, %d\n", arr[1], arr.size());
arr.clear();
printf("Result and size : %d, %d\n", arr[1], arr.size());
// Test Code
【问题讨论】:
-
“我希望向量的所有元素都为零,因为 False 为零。” - 为什么会这样?有文档,你不应该猜一个 API 做什么。