常用库函数

这里写目录标题

  • 常用库函数
    • accmulate
    • bound
    • getline
    • memset
    • max/min _element
    • sort
    • strlen

accmulate

accumulate就是累计函数
仅适用于 vector当中

用法

accumulate(m,n,x)

各个参数表示
m:累计开始的位置
n:累计结束的位置
x:累计的初值

具体例子

 vector<int>a;cout << "all data" << endl;for (int i = 1; i < 6; i++){a.push_back(i);cout << i << " " ;if (i==5){cout << endl;}}cout << "sum ";int x = accumulate(a.begin(),a.end(),0);cout << x << endl;

输出

all data
1 2 3 4 5
sum 15

除了可以累加,还可以累乘,只需要增加一个参数就可以了

具体例子

x = accumulate(a.begin(),a.end(),1,multiplies<int>( ));

除此之外,还可以是字符串的拼接哦!!!
但是,记得输出的是string哦!!!

 vector<char>b;b.push_back('h');b.push_back('a');b.push_back('h');b.push_back('a');string y=accumulate(b.begin(),b.end(),string(""));cout << "string jiont ";cout << y;

bound

这个函数就是返回,结构中某个数或是大于某个数的第一个数字

具体详见代码

 int num[6]={1,4,2,17,7,34}; int pos1=lower_bound(num,num+6,7)-num;返回的是 大于等于这个数的第一个数字的地址// 返回的是一个地址,// 所以如果返回要的是具体位置,还要减去开头的地址cout << pos1 << endl;

输出

3

虽然,7是在索引为4的位置
但是,17在其之前,而且符合大于7的条件,所以输出了7的索引!!

另一种bound

  而upper_bound 返回的是大于  这个数字的索引地址pos1=upper_bound(num,num+6,7)-num;cout << pos1;

getline

就是类似于 cin 和 scanf的输入函数
他的特别之处就是在于 其终结的标志不再是空格,而是可以为其他东西

getline有两种模式
第一种

getline(cin,a);

a表示的是接受的单位
而这种方式接受的是string!!!!!

所以定义a的时候要是string类型

具体例子

 string a;getline(cin,a);// getline接受的是字符串哦cout << a;// 停止的标志的回车

同时,我们也可以自定义终止标志,在函数里面添加参数

    // 也可以自定义停止的字符getline(cin,a,'#');cout << a;// 这个时候就不是回车导致停止了

第二种模式

cin.getline(x,y);

x表示的是接受的单位
y表示接受多少字符串,大多都是x这个的数组的大小
!!!! 这个模式接受的是字符串数组,而不是string

具体例子

 char xx[10];cin.getline(xx,10);cout << xx;

memset

这个函数就是将整个结构的数据进行一个全部统一赋值,或者可以叫做初始化,因为能赋的值不多

模板

memset(abc,x,sizeof(abc));

abc:需要初始化的结构
x:初始化的数值
sizeof(abc):整个结构都要初始化喔

!!!!
很重要的是!!!!
对于数字数值,这个方法可以叫做初始化,因为x只能够取 0或者是-1
不然的话,就会导致数据出现错误!!!

除了,数字数组可以初始化
字符串数组也是可以的!!!
这个时候x的值就没有限制了!!!
例子:

 char xxx[5]="abcd";cout << xxx[3] << endl;memset(xxx,'h',sizeof(xxx)-1);cout << xxx[3];

输出

abcd
hhhh

max/min _element

就是类似于python的max和min

所以没什么好说的
!!!但是要注意的是,我们还是要设置范围,而范围是该结构的地址!!!
所以最后输出的时候我们还要迭代回去

看代码咯

 int a[5]={5,9,8,2,3};cout << *min_element(a,a+5) << endl;

对于数组来说,没有begin,所以直接把自己放上去即可(不知道对吗?)

对于vector来说

 vector<int>l={5,9,8,2,3};auto m = max_element(l.begin(),l.end());cout << *m;

sort

就是sort。。。没什么好说的

基本使用

sort(a,b)

a:开始的地方
b:结束的地方
注意这两者都是该结构的地址

具体例子

 int a[3]={2,1,0};sort(a,a+3);int len = sizeof(a)/4 -1;// cout << len;cout << a[len] << endl;

输出

2

strlen

就是就像他的名字一样
str + len
所以就是用于 测量字符串

和sizeof的区别
szieof是整个数组的长度,不管满没满字符(指的是非\0)
而strlen是这个字符串数组里面含有多少的字符串

具体例子

 char a[10]="aaaa";cout << sizeof(a) << endl;cout << strlen(a);

输出

10
4

因为a数组总长 10 ,所以sizeof输出10
而又因为,仅仅输入了4个字符’a’,所以strlen输出的是4

常用库函数的学习笔记相关推荐

  1. Vue学习(入门实例、常用指令)-学习笔记

    文章目录 Vue学习(入门实例.常用指令)-学习笔记 实例 常用指令 v-on v-bind v-for v-html v-if event v-model 双向数据绑定实现 - defineProp ...

  2. 深度学习常用python库学习笔记

    深度学习常用python库学习笔记 常用的4个库 一.Numpy库 1.数组的创建 (1)np.array() (2)np.zeros() (3)np.ones() (4)np.empty() (5) ...

  3. python3常用模块_Python学习笔记三(常用模块)

    Python 学习笔记三 (常用模块) 1.os模块 os模块包装了不同操作系统的通用接口,使用户在不同操作系统下,可以使用相同的函数接口,返回相同结构的结果. os.name:返回当前操作系统名称( ...

  4. oracle常用数据统计,学习笔记:Oracle DBMS_STATS常用方法汇总 常用于收集统计oracle...

    天萃荷净 Oracle数据库中DBMS_STATS常用方法(收集oracle数据库.索引.表等信息) –收集Oracle数据库信息命令 EXEC DBMS_STATS.gather_database_ ...

  5. 《常用控制电路》学习笔记——数控锁相环调速电路

    序言 今天开始我将把自己学习<常用控制电路>的一些内容发到互联网上,希望能和大家交流学习. 这本书主要介绍了一系列控制电路的经典案例,进行了电路和代码的设计,我将把这本书中学习到的内容和学 ...

  6. c 语言自行实现字符串常用库函数_学习c语言的7本书——你知道吗?

    下面给大家介绍7本书,如果不知道哪本适合自己,可以百度了解一下! C primer plus C primer plus作为一本被人推崇备至的c入门经典,C primer plus绝非浪得虚名.应该算 ...

  7. 常用的正则表达式---学习笔记(一)

    原文链接:http://www.jianshu.com/p/e7bb97218946 正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻 ...

  8. 《常用控制电路》学习笔记——数字控制直流电动机调速电路

    书中该节讲述的电路通过ADC芯片将电位器的阻值转换为电压量,然后使用单片机输出PWM进行电路控制.本电路也可扩展应用至需要模拟量输入与输出的场合. 目录 一.系统设计思路 二.各模块电路分析 2.1电 ...

  9. 关于二进制的常用代码(学习笔记)

    大佬们常用的无穷大量: const int inf = 0x3f3f3f3f; 快速判断二进制中有几个1 方法1:这里涉及一个&的知识点,&是按位与,就是在一位一位的做与运算, whi ...

最新文章

  1. 重新mysql-server
  2. 【DocFX文档翻译】DocFX 入门 (Getting Started with DocFX)
  3. 第十七届全国大学生智能车竞赛完全模型组 I 型车模数据
  4. Linux下的网络远程安装
  5. [转载] 七龙珠第一部——第125话 神将登场
  6. Property ‘configuration‘ and ‘configLocation‘ can not specified with together
  7. Apache Kafka 1.0.0正式发布!
  8. OpenCV与Eclipse结合使用(插件CDT)
  9. OSGi介绍及OSGi的Bundle应用
  10. 关于生sql中的空值
  11. python字符串应用
  12. ModuleNotFoundError: No module named 'oscar.app'
  13. [剑指offer]面试题第[35]题[Leetcode][第138题][JAVA][复杂链表的复制][暴力][HashMap][复制链表]
  14. BP神经网络原理简介
  15. 远程桌面连接无法全屏显示
  16. 崩溃死我的Dev无法调试,Devc调试点下一步没反应
  17. 我,第一次做项目经理,干赔了
  18. 景区大数据可视化交互系统-全方位旅游服务平台,打造景区信息数据管理分析平台
  19. 微信公众平台配置服务器之后实现自动回复
  20. 正版rust30005_预算大概在3000以内可以买猫吗?

热门文章

  1. 标题Macvim连接Mac终端前期终端配置
  2. idea ctrl+alt+向左箭头不能用
  3. P2495 [SDOI2011]消耗战 虚树入门
  4. 贝叶斯网专题11:参数学习之极大似然估计
  5. 关于嵌入式系统的应用分析
  6. Java数字连连看的代码
  7. Mycat(6):mycat简单配置
  8. 如何跨网段搜索网络摄像机
  9. vue-video-player视频播放插件
  10. android MediaPlayer架构