当前位置:   article > 正文

【代码】c++几个常用的函数

【代码】c++几个常用的函数

Hello!大家好,我是@学霸小羊,今天讲讲c++函数库里面的几个基本函数。

1.sort()

sort()是大名鼎鼎的排序函数,以前起码一两个循环的排序,用这个函数一行代码就可以解决。

格式:

  1. sort(数组名"+"开始下标,数组名"+"开始下标,数组前后两个数需要保持的条件(函数,可省略))
  2. 例:
  3. bool cmp(int x,int y) return x>y;
  4. sort(a+1,a+10+1,cmp);

2.sqrt()

sqrt()函数是平方根函数,这可以用于勾股定理。

先去学一下勾股定理,待会我附下代码。

【数学】勾股定理icon-default.png?t=N7T8https://blog.csdn.net/yangyanbin_sam/article/details/138959059?spm=1001.2014.3001.5501代码:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5. int a,b,c;
  6. cin>>a>>b;
  7. c=sqrt(a*a+b*b);
  8. cout<<c<<endl;
  9. cout<<a<<"×"<<a<<"+";
  10. cout<<b<<"×"<<b<<"=";
  11. cout<<c<<"×"<<c;
  12. return 0;
  13. }

3.abs()

abs()函数用于计算绝对值,这对于负数有一些帮助,可以去学一下负数:

【数学】负数icon-default.png?t=N7T8https://blog.csdn.net/yangyanbin_sam/article/details/139769603?spm=1001.2014.3001.5501来看一道题:

时限:1s     空间:256m    

题目描述

小明是一名热爱体育的OIER,这天她在进行折返跑的练习,练习的规则如下:

在开始的时候,小明站在x=0处,有n个路标分别坐落于x1,x2,x3...xn。小明想在T单位时间内 访问尽可能多的路标,她每跑一个单位长度的距离,需要一个单位时间。

小明按照一个特殊的规则来访问路标,距离原点越近的路标,对小明越重要。

她总是会朝未访问过的距离原点最近的路标跑。没有两个路标距离原点的距离相等。

请你帮助计算一下,小明在日落之前能够访问多少个路标?

输入格式

第一行输入两个整数T、n,

随后n行,每行一个整数,代表路标 的位置xi

数据规模

对于20%数据: T ≤ 20,n ≤ 15

对于40%数据: n ≤ 3000

对于100%数据:  1 ≤ n ≤ 50000 ,   100000 ≤ 

i ≤ 100000 ,1 ≤ T ≤ 1000000000

输出格式

输出一行一个整数,表示小明在日落之前能够访问到的路标的个数。

输入/输出例子1

输入:

25 5

10

-3

8

-7

1

输出:

4

样例解释

样例解释#1

小明将先前往 1,再去-3,再去-7,然后去8,共花费1+4+4+15=24 ,本来下一步应该去 10 ,但时间不够了,于是输出4

这道题就需要用负数的绝对值来比较每一个点距离原点的距离了,需要用结构体储存绝对值。

代码:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. long long t,n,s,xa;
  4. struct stu
  5. {
  6. int a=0,b=0;
  7. }a[500005];
  8. bool cmp(stu x,stu y)
  9. {
  10. return x.b<y.b;
  11. }
  12. int main(){
  13. cin>>t>>n;
  14. for(int i=1;i<=n;i++)
  15. {
  16. cin>>a[i].a;
  17. a[i].b=abs(a[i].a);
  18. }
  19. sort(a+1,a+n+1,cmp);
  20. for(int i=1;i<=n&&xa+abs(a[i].a-a[i-1].a)<=t;i++)
  21. {
  22. xa+=abs(a[i].a-a[i-1].a);
  23. s++;
  24. }
  25. cout<<s;
  26. return 0;
  27. }

4.字符串函数

对于字符串,也有很多函数:

 

  1. // C++标凇库提供了丰富的字符串操作函数,下面介绍一些常用的函数。
  2. // 备注:位置可以看成是字符串的下标,从0开始
  3. // 获取字符串长度
  4. // 使用length或size函数来获取字符串的长度。
  5. #include <iostream>
  6. #include <string>
  7. #include <algorithm>
  8. #include <cctype>
  9. using namespace std;
  10. int main() {
  11. string str = "Hello, World!";
  12. size_t length = str.length(); // or str.size()
  13. cout << "Length of the string: " << length << endl;
  14. // 拼接字符串
  15. // 使用+操作符或append函数来拼接字符串。
  16. string str1 = "Hello";
  17. string str2 = "World";
  18. string str3 = str1 + ", " + str2 + "!";
  19. cout << str3 << endl;
  20. str1.append(", ").append(str2).append("!");
  21. cout << str1 << endl;
  22. // 查找子字符串
  23. // 使用find函数来查找子字符串的位置。没找到则返回-1
  24. string str4 = "Hello, World!";
  25. size_t pos = str4.find("World");
  26. if (pos != -1) {
  27. cout << "Found 'World' at position: " << pos << endl;
  28. } else {
  29. cout << "'World' not found" << endl;
  30. }
  31. // 替换子字符串
  32. // 使用replace函数来替换子字符串。
  33. string str5 = "Hello, World!";
  34. str5.replace(7, 5, "C++"); // 从位置7开始,替换长度为5的子字符串(这5个字符将被删除)
  35. cout << str5 << endl;// "Hello, C++!"
  36. // 子字符串提取
  37. // 使用substr函数提取子字符串。
  38. string substr = str5.substr(7, 5); // 从位置7开始,提取长度为5的子字符串
  39. cout << substr << endl;
  40. // 清空字符串
  41. // 使用clear函数来清空字符串。
  42. string str6 = "Hello, World!";
  43. str6.clear();
  44. cout << "After clear: " << str6 << endl;
  45. // 字符串是否为空
  46. // 使用empty函数检查字符串是否为空。
  47. string str7 = "";
  48. if (str7.empty()) {
  49. cout << "The string is empty" << endl;
  50. } else {
  51. cout << "The string is not empty" << endl;
  52. }
  53. // 访问字符
  54. // 使用索引操作符[]或at函数来访问字符串中的字符。
  55. string str8 = "Hello, World!";
  56. char ch1 = str8[0]; // 访问第一个字符
  57. char ch2 = str8.at(1); // 访问第二个字符
  58. cout << "First character: " << ch1 << endl;
  59. cout << "Second character: " << ch2 << endl;
  60. // 插入字符串
  61. // 使用insert函数在指定位置插入子字符串。
  62. string str9 = "Hello, World!";
  63. str9.insert(7, "C++ ");// 在s[7]位置插入字符串
  64. cout << str9 << endl; // 输出: Hello, C++ World!
  65. // 删除字符串
  66. // 使用erase函数删除指定位置的子字符串。
  67. string str10 = "Hello, C++ World!";
  68. str10.erase(7, 4); // 从位置7开始删除长度为4的子字符串
  69. cout << str10 << endl; // 输出: Hello, World!
  70. // 反转字符串
  71. // 虽然没有直接的函数,但可以使用标准库算法reverse来反转字符串。
  72. string str17 = "Hello, World!";
  73. reverse(str17.begin(), str17.end());
  74. cout << str17 << endl; // 输出: !dlroW ,olleH
  75. return 0;
  76. }

今天就讲到这啦,拜拜!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/775504
推荐阅读
相关标签
  

闽ICP备14008679号