我想清除数组中的所有元素,但我不知道如何自动清除它。有没有它的功能?像clear()列表一样?如何清除数组中的元素?
int array[5] = {2,5,4,8,6};
然后我希望清除一切,并添加了一套新的价值观
我想清除数组中的所有元素,但我不知道如何自动清除它。有没有它的功能?像clear()列表一样?如何清除数组中的元素?
int array[5] = {2,5,4,8,6};
然后我希望清除一切,并添加了一套新的价值观
你的问题是不正确的,因为你不能clear out
数组。数组具有固定的大小,并且总是会有一些值。
如果要重新使用数组,只需覆盖现有的值。可能考虑使用std::vector
。使用clear()
函数,可以清除std::vector
中的所有值。
了解std::vector
Here
要清除的阵列装置的所有值设置为T(),对于基本算术类型的数组相当于设置为零的所有元素。
你可以用几种方法做到这一点。第一个是使用标头<cstring>
中声明的标准C函数std::memset
。例如
#include <iostream>
#include <cstring>
int main()
{
int array[] = { 2, 5, 4, 8, 6 };
const size_t N = sizeof(array)/sizeof(*array);
for (int x : array) std::cout << x << ' ';
std::cout << std::endl;
std::memset(array, 0, N * sizeof(int));
for (int x : array) std::cout << x << ' ';
std::cout << std::endl;
return 0;
}
的另一种方法是使用标准算法std::fill
在头<algorithm>
声明。例如
#include <iostream>
#include <algorithm>
int main()
{
int array[] = { 2, 5, 4, 8, 6 };
const size_t N = sizeof(array)/sizeof(*array);
for (int x : array) std::cout << x << ' ';
std::cout << std::endl;
std::fill(array, array + N, 0);
for (int x : array) std::cout << x << ' ';
std::cout << std::endl;
return 0;
}
在两种情况下,程序输出是
2 5 4 8 6
0 0 0 0 0
如果需要一个可变长度数组然后使用标准容器std::vector<int>
。
例如
#include <iostream>
#include <iomanip>
#include <vector>
int main()
{
std::vector<int> array = { 2, 5, 4, 8, 6 };
for (int x : array) std::cout << x << ' ';
std::cout << std::endl;
array.clear();
std::cout << "array is empty - " << std::boolalpha << array.empty() << std::endl;
return 0;
}
程序输出是
2 5 4 8 6
array is empty - true
代替array.clear();
有可能在程序中也使用array.resize(0);
。
你是什么意思清除?元素不能从数组中移除,所以即使你没有使用它,它仍然会有一些价值。 – NathanOliver
你是什么意思与“清除”?一个数组有固定数量的元素,因此你不能擦除元素。 – user463035818
只需在那里放置新的值。无需清除。但是,如果你使用'std :: array',那么你可以直接赋值'{}'。 –