gpt4 book ai didi

c++ - 如何在 C++ 中删除小于 X 的数组中的整数?

转载 作者:搜寻专家 更新时间:2023-10-31 00:27:27 24 4
gpt4 key购买 nike

我在 PHP 中发现了同样的问题,并尝试在 C++ 中做同样的事情。

我试过以下:

// returns new array with numbers lower then "number", len is set to
// new length.
int * filter(int array[], int &len, int number) {
int cnt = 0;
for (int i = 0; i < len; i++) {
if (array[i] < number) {
cnt++;
}
}
int *ret = new int[cnt];
cnt = 0;
for (int i = 0; i < len; i++) {
if (array[i] < number) {
ret[cnt] = array[i];
cnt++;
}
}
len = cnt;
return ret;
}

此函数将创建一个新数组,其中包含小于整数 number 的整数。我试图绕过我不知道新数组应该有多长的问题。

有没有更好的办法解决这个问题?

最佳答案

是的,使用 std::vector 类型。每次您向其推送值时,它都会自动为您处理分配(使用 push_back 方法)。

例子

#include <iostream>
#include <vector>

int main() {
std::vector<int> a;
a.push_back(1);
a.push_back(2);
for (int value : a) {
std::cout << value << '\n';
}
}

避免使用 new 语法也是个好主意,因为它不会自动释放,这与 std::vector 不同。

此外,虽然这与问题无关,但 C++ 提供了一个函数来执行您想要的操作,该函数已称为 std::copy_if。 .

关于c++ - 如何在 C++ 中删除小于 X 的数组中的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48989014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com