function in std: isinf(), isnan(),nth_element()

bool isinf(double a) 和 bool isnan(double a)

定义在std中,分别判断浮点型数据a是否无穷和是否非法

nth_element_array

应用的范围由它的第一个和第三个参数指定。第二个参数是一个指向第 n 个元素的迭代器。如果这个范围内的元素是完全有序的,nth_dement() 的执行会导致第 n 个元素被放置在适当的位置。这个范围内,在第 n 个元素之前的元素都小于第 n 个元素,而且它后面的每个元素都会比它大。算法默认用 < 运算符来生成这个结果。可以输入第四个参数改变默认的比较函数
使用array和vector的例子如下:

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main(){
    std::vector<int> numbers {22, 7, 93, 45, 19, 56, 88, 12, 8, 7, 15, 10};
    size_t count {5};
    std::nth_element(std::begin(numbers), std::begin(numbers) + count, std::end(numbers)) ;
    for(auto c:numbers)std::cout << c << " ";
    return 1;
}
#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>

using namespace std;

int main(){
    int numbers[] =  {22, 7, 93, 45, 19, 56, 88, 12, 8, 7, 15, 10};
    size_t count {5};
    int * begin = numbers;
    int * end = numbers + 12;
    int *middle = numbers + static_cast<int>(std::floor((end - begin) / 2));
    std::nth_element(begin, middle, end) ;

    for(int i = 0; i < 12; i ++)std::cout << numbers[i] <<(i < 11 ?  " ":"");
    return 1;
}

输出都是

10 7 7 8 12 15 19 22 45 93 88 56
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值