我想清除數組中的所有元素,但我不知道如何自動清除它。有沒有它的功能?像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',那麼你可以直接賦值'{}'。 –