C++ : STL常用算法: inner_product , sort ,itoa

2024-02-25 15:08

本文主要是介绍C++ : STL常用算法: inner_product , sort ,itoa,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.std::count

2.std::inner_product

3.atoi

4.itoa

5 is_sorted      

6  sort 

7. fill

8 mismatch


1.std::count

count(_InputIterator __first, _InputIterator __last, const _Tp& __value)

在头文件algorithm 中,用来记录线性表 从 __first 到 __last   中出现  __value的次数 

#include<algorithm>
#include<iostream>
using namespace std;
int main(){int a[10] ={9,34,24,56,31,24,66,3,45,98};cout<< std::count(a,a+10,24)<<endl;    //输出2
}

2.std::inner_product

template<typename _InputIterator1, typename _InputIterator2, typename _Tp,typename _BinaryOperation1, typename _BinaryOperation2>inline _Tpinner_product(_InputIterator1 __first1, _InputIterator1 __last1,_InputIterator2 __first2, _Tp __init,_BinaryOperation1 __binary_op1,_BinaryOperation2 __binary_op2)

其中  __binary_op1  和__binary_op2  类似与算术运算符  ,也可以是一个两个参数的自定义函数。

__first1:代表线性表的起始位置

__last1: 代表线性表的结束位置

__first2: 代表另一个线性表的起始为位置

__init : 代表初始值

__binary_op1: 两个相之间的算术符 ,默认是  加法

__binary_op2  : 两个线性表元素的算术符   默认是乘法

函数作用: 返回和     __init数据类型相同的数   

  ret=  init  op1   (*(first1++ )  op2   * (first2++))        first1< last1 ;

例如

#include<algorithm>
#include<iostream>
using namespace std;
int main(){int a[10] ={9,34,24,56,31,24,66,3,45,98};cout<< std::inner_product(a,a+2,a+1,0,[](int x,int y){return x+y;},multiplies<int>())<<endl;
// 输出   1122     // 0 + 9*34 + 34*24 }

3.atoi

   字符串 char*转  数字  ;

 cout<<std::atoi("13")+2<<endl;

4.itoa

  

itoa (int, char*, int)

整数 转 字符串

参数分别是   需要转化的整数    、接受返回值的字符串 , 转化的进制数

例如:

itoa(1130,s,16);
//输出  46a    //1130 的16进制形式  

 

5 is_sorted      

判断线性表是否按照规定顺序排好序

template<typename _ForwardIterator, typename _Compare>inline boolis_sorted(_ForwardIterator __first, _ForwardIterator __last,_Compare __comp)

其中 __comp可以是一个二元的自定义函数,用来比较前后两个数的是否按照要求比较;默认是从小到大

6  sort 

template<typename _RandomAccessIterator, typename _Compare>inline voidsort(_RandomAccessIterator __first, _RandomAccessIterator __last,
_Compare __comp)

例如

#include<algorithm>
#include<iostream>
using namespace std;
print(int a[],int len); //打印数组
int main(){int a[10] ={9,34,24,56,31,24,66,3,45,98};std::sort(a,a+9,[](int x,int y){return y<x;}); //对前面9个数从大到小排序print(a,10);cout<<std::is_sorted(a,a+9,[](int x,int y){return y<x;})<<endl;//判断前面9个数是否从大到小排序
}

输出:

66  56  45  34  31  24  24  9  3  98

1

7. fill

template<typename _ForwardIterator, typename _Tp>
  inline void
  fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value)

从线性表  __first 到 __last  的值全部用__value 替换

 

8 mismatch

template<typename _InputIterator1, typename _InputIterator2,typename _BinaryPredicate>pair<_InputIterator1, _InputIterator2>mismatch(_InputIterator1 __first1, _InputIterator1 __last1,_InputIterator2 __first2, _BinaryPredicate __binary_pred)

返回第一个匹配不上的匹配对。其中 __binary_pred 是匹配条件,默认是相等。

 

#include<algorithm>
#include<iostream>
using namespace std;
int main(){int a[10] ={9,34,24,56,31,24,66,3,45,98};int b[10] ={9,34,24,56,71,24,66,2,45,98};pair<int *, int *> pai=mismatch(a, a + 10, b,[](int x,int y){return y>=x;});cout<<*(pai.first)<<" notMatch "<<*(pai.second)<<endl;//输出 : 3 notMatch 2
}

 

这篇关于C++ : STL常用算法: inner_product , sort ,itoa的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/745854

相关文章

利用c++判断水仙花数并输出示例代码

《利用c++判断水仙花数并输出示例代码》水仙花数是指一个三位数,其各位数字的立方和恰好等于该数本身,:本文主要介绍利用c++判断水仙花数并输出的相关资料,文中通过代码介绍的非常详细,需要的朋友可以... 以下是使用C++实现的相同逻辑代码:#include <IOStream>#include <vec

基于C++的UDP网络通信系统设计与实现详解

《基于C++的UDP网络通信系统设计与实现详解》在网络编程领域,UDP作为一种无连接的传输层协议,以其高效、低延迟的特性在实时性要求高的应用场景中占据重要地位,下面我们就来看看如何从零开始构建一个完整... 目录前言一、UDP服务器UdpServer.hpp1.1 基本框架设计1.2 初始化函数Init详解

C++ 右值引用(rvalue references)与移动语义(move semantics)深度解析

《C++右值引用(rvaluereferences)与移动语义(movesemantics)深度解析》文章主要介绍了C++右值引用和移动语义的设计动机、基本概念、实现方式以及在实际编程中的应用,... 目录一、右值引用(rvalue references)与移动语义(move semantics)设计动机1

Java实现字符串大小写转换的常用方法

《Java实现字符串大小写转换的常用方法》在Java中,字符串大小写转换是文本处理的核心操作之一,Java提供了多种灵活的方式来实现大小写转换,适用于不同场景和需求,本文将全面解析大小写转换的各种方法... 目录前言核心转换方法1.String类的基础方法2. 考虑区域设置的转换3. 字符级别的转换高级转换

Python使用Matplotlib和Seaborn绘制常用图表的技巧

《Python使用Matplotlib和Seaborn绘制常用图表的技巧》Python作为数据科学领域的明星语言,拥有强大且丰富的可视化库,其中最著名的莫过于Matplotlib和Seaborn,本篇... 目录1. 引言:数据可视化的力量2. 前置知识与环境准备2.1. 必备知识2.2. 安装所需库2.3

C++ move 的作用详解及陷阱最佳实践

《C++move的作用详解及陷阱最佳实践》文章详细介绍了C++中的`std::move`函数的作用,包括为什么需要它、它的本质、典型使用场景、以及一些常见陷阱和最佳实践,感兴趣的朋友跟随小编一起看... 目录C++ move 的作用详解一、一句话总结二、为什么需要 move?C++98/03 的痛点⚡C++

详解C++ 存储二进制数据容器的几种方法

《详解C++存储二进制数据容器的几种方法》本文主要介绍了详解C++存储二进制数据容器,包括std::vector、std::array、std::string、std::bitset和std::ve... 目录1.std::vector<uint8_t>(最常用)特点:适用场景:示例:2.std::arra

C++构造函数中explicit详解

《C++构造函数中explicit详解》explicit关键字用于修饰单参数构造函数或可以看作单参数的构造函数,阻止编译器进行隐式类型转换或拷贝初始化,本文就来介绍explicit的使用,感兴趣的可以... 目录1. 什么是explicit2. 隐式转换的问题3.explicit的使用示例基本用法多参数构造

MyBatis配置文件中最常用的设置

《MyBatis配置文件中最常用的设置》文章主要介绍了MyBatis配置的优化方法,包括引用外部的properties配置文件、配置外置以实现环境解耦、配置文件中最常用的6个核心设置以及三种常用的Ma... 目录MyBATis配置优化mybatis的配置中引用外部的propertis配置文件⚠️ 注意事项X

C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解

《C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解》:本文主要介绍C++,C#,Rust,Go,Java,Python,JavaScript性能对比全面... 目录编程语言性能对比、核心优势与最佳使用场景性能对比表格C++C#RustGoJavapythonjav