[英]How can I erase all items from a vector? C++
我只是想让我所有的元素都设为0
而无需手动
for (i = 1; i <= n; i++)
v[i] = 0;
我在网上发现可以使用以下命令: v.clear();
但它不起作用:
错误:请求'v'中的成员'clear'为非类类型'int [101]'
这是我的代码:
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int n,i,v[101];
int main() {
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
v.clear();
for(i=1;i<=n;i++)
cout<<v[i]<<" ";
return 0;
}
我们有std::fill
,它也可以与C样式的数组一起使用:
std::fill(std::begin(v), std::end(v), 0);
您有一个数组。 C ++中的数组没有方法。 您需要的是调用标准C函数内存集。
例如
#include <cstring>
//...
std::memset( v, 0, n * sizeof( int ) );
同样,C ++中数组的索引从0开始。
for( i = 0; i < n; i++ )
std::array
,它也可以指定大小,例如int v[101]
。 然后,您可以使用v = {0}
使我的所有元素成为0
。 #include <iostream>
#include <array>
using namespace std;
int main() {
array<int, 101> v;
for (auto &elem : v)
cin >> elem;
v = {0};
for (auto elem : v)
cout << elem << " ";
}
std::array
,也可以像下面这样。 int v[5] = {1, 2, 3, 4, 5};
int *p = v;
while (*p++ = 0, *p != 0) { };
std::fill(std::begin(v), std::end(v), 0);
用户Evg回答的最佳。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.