c++小白在洛谷学到的东西——week 1
1.c++万能头文件
在C++中,所谓的“万能头文件”通常指的是<bits/stdc++.h>,它包含了几乎所有标准库的头文件。这个头文件主要用于竞赛编程或快速原型开发,可以避免频繁引入多个头文件的麻烦。
使用<bits/stdc++.h>的优势
- 便捷性:只需包含一个头文件即可使用大多数标准库功能,如
<iostream>、<vector>、<algorithm>等。 - 节省时间:在竞赛编程中,可以快速编写代码而无需关心具体需要哪些头文件。
注意事项
- 非标准头文件:
<bits/stdc++.h>是GCC编译器的扩展,并非C++标准的一部分。其他编译器(如MSVC、Clang)可能不支持。 - 编译时间:包含所有头文件会增加编译时间,不适合大型项目。
- 可移植性:依赖此头文件的代码可能无法在其他编译器或平台上运行。
2.abs函数
abs函数的基本介绍
在C++中,abs函数用于计算整数的绝对值。该函数定义在<cstdlib>头文件中,适用于int、long、long long等整数类型。对于浮点数,应使用<cmath>中的fabs或std::abs。
整数绝对值的用法
对于整数类型,abs函数的原型如下:
int abs(int n);
long abs(long n);
long long abs(long long n);
示例代码:
#include <cstdlib>
#include <iostream>
int main() {
int a = -5;
std::cout << "Absolute value of " << a << " is " << abs(a) << std::endl;
return 0;
}
输出结果:
Absolute value of -5 is 5
浮点数绝对值的用法
对于浮点数(float、double、long double),应使用<cmath>中的std::abs
#include <cmath>
#include <iostream>
int main() {
double b = -3.14;
std::cout << "Absolute value of " << b << " is " << std::abs(b) << std::endl;
return 0;
}
输出结果:
Absolute value of -3.14 is 3.14
3.sort排序函数
sort函数的作用
sort函数用于对数组或列表中的元素进行排序,能够快速将数据按照升序或降序重新排列。该函数通常由编程语言内置,具有高效性和易用性。
使用sort函数的优势
效率高
大多数编程语言中的sort函数采用优化算法(如快速排序、归并排序),时间复杂度为O(n log n),适合处理大规模数据。
代码简洁
无需手动实现排序逻辑,一行代码即可完成排序。
sort函数的基本用法
C++中的sort函数位于<algorithm>头文件中,用于对容器或数组中的元素进行排序。默认情况下按升序排列。
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int num[10] = {6,5,9,1,2,8,7,3,4,0};
sort(num,num+10);
for(int i=0;i<10;i++){
cout<<num[i]<<" ";
}//输出结果:0 1 2 3 4 5 6 7 8 9
return 0;
}
如果想要升序
使用greater<int>() 当然<>中我们也可以写double、long、float等等
greater<int>() 的含义
greater<int>() 是 C++ 标准库中的一个函数对象(Functor),用于实现降序排序或比较两个元素的大小关系。它属于 <functional> 头文件中定义的比较器类模板,专门用于比较操作。
下面用上面的代码写降序的
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int num[10] = {6,5,9,1,2,8,7,3,4,0};
sort(num,num+10,greater<int>());
for(int i=0;i<10;i++){
cout<<num[i]<<" ";
}//输出结果:9 8 7 6 5 4 3 2 1 0
return 0;
}
sort 函数括号里面的是左闭右开写法,所以右边需要多加一位,表示在它之前的都进行排序
4.把一串数字反转
在 C++ 中,reverse 函数用于反转容器或数组中的元素顺序。它属于标准模板库(STL)的一部分,定义在 <algorithm> 头文件中。
使用方法
本小白知识有限,就只列举了数组和字符串用法
数组:
需要注意的是:reverse函数里的(last,end);表示从last到end前面一位进行反转,end不反转(可以理解成左闭右开的意思doge)
#include<bits/stdc++.h>
int main() {
int arr[] = {10, 20, 30, 40};
reverse(arr, arr + 4);//所以此处是+3不是+4!!!
for (int i=0;i<4;i++) {
cout <<arr[i]<< " "; // 输出:40 30 20 10
}
return 0;
}
反转字符串(tring):
字符串没有像数组那样特殊要求,有一个固定的格式是reverse(字符串名字.begin(),字符串名字.end())
#include<bits/stdc++.h>
using namespace std;
int main() {
string str = "Hello World";
reverse(str.begin(), str.end());
cout << str; // 输出:dlroW olleH
return 0;
}
5.开方函数(sqrt)
C++ 中的 sqrt 函数用于计算一个数的平方根,属于标准数学库 <cmath> 或 <math.h>(C 风格头文件)
- 参数
x必须为非负数(若为负数可能引发域错误或返回 NaN)。 - 返回值为
double,float,long double类型,表示x的算术平方根.
格式:
sqrt(数值);这个数值可以是任意类型,只要>=0就ok
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a;
cin>>a;
double b=sqrt(a);
cout<<b;;
return 0;
}
6.A乘B的n次方
使用pow函数:
格式:A*pow(B,n)
pow函数的参数和返回值都是double类型
当B为10时
可以写成Aen;表示A乘B的n次方
更多推荐

所有评论(0)