欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > 算法学习C++需注意的基本知识

算法学习C++需注意的基本知识

2025/9/27 4:30:54 来源:https://blog.csdn.net/2302_82004664/article/details/147154942  浏览:    关键词:算法学习C++需注意的基本知识

文章目录

  • 01_算法中C++需注意的基本知识
    • cmath头文件
    • 一些计算符
    • ASCII码表
    • 数据类型长度
    • 运算符
    • cout固定输出格式
    • 浮点数的比较
    • max排序自定义类型
    • 字符的大小写转换与判断
    • 判断字符是数字还是字母
  • 02_数据结构需要注意的内容
  • 1.string
    • getline函数的使用
    • string::find
    • substr截取字符串
    • string与int之间的转化
    • 翻转字符串
  • 2.优先级队列(priority_queue)
  • 3.set
    • unique去重函数

01_算法中C++需注意的基本知识

cmath头文件

C++ 标准库标头 - cppreference.com

sqrt计算平方根

pow计算平方

fabs计算浮点数绝对值

abs计算整数的绝对值

ceil浮点数向上取整

floor浮点数向下取整

一些计算符

#include <iostream>
using namespace std;int main()
{double a = 1e5;//1.0*10^5cout<<a<<endl; // 100000return 0;
}

ASCII码表

image-20250112195919386

A~Z: 65~90

A~Z: 97~122 两者中间相差32

0~9: 48~57

\n: 10

数据类型长度

#define SHRT_MIN (-32768) //有符号16位整型的最⼩值
#define SHRT_MAX 32767 //有符号16位整型的最⼤值
#define USHRT_MAX 0xffffU //⽆符号16位整型的最⼤值
#define INT_MIN (-2147483647 - 1) //有符号整型的最⼩值
#define INT_MAX 2147483647 //有符号整型的最⼤值
类型最小值最大值
charCHAR_MIN (-27) [-128]CHAR_MAX (27-1) [127]
unsigned char0UCHAR_MAX (28-1) [255]
shortSHRT_MIN (-215)SHRT_MAX (215-1) [32767]
unsinged short0USHRT_MAX (216-1)
intINT_MIN (-232)INT_MAX (232-1)
unsigned int0UINT_MAX (232-1)
longLONG_MIN (-231)LONG_MAX (232-1)
unsigned long0ULONG_MAX (231-1)
long longLONG_MIN (-263)LONG_MAX (263-1)
usigned long longLLONG_MIN (0)ULLONG_MAX (264-1)

运算符

%两边需要为整数,不能为小数

用小数去/结果才会出现小数

%运算时结果的正负仅仅和第一个操作数有关如: -11 % -5 = -1 -11 % 5 = -1 11 % -5 = 1

#include <iostream>
#include <cstdio>
using namespace std;int main()
{char ch = getchar();putchar(ch);return 0;
} 

cout固定输出格式

setu设置宽度 setfill设置填充

scientific固定为科学计数法表示

setprecision设置小数点位数 fixed固定为非科学计数法表示

image-20250113223221498

dec十进制 hex十六进制 oct八进制

left设置左对齐 right设置右对齐

image-20250113223130522

浮点数的比较

image-20250114130350935

image-20250114130123495

  1. C++中为了⽀持混合使⽤ cin/cout 和 scanf/printf ,C++ 标准库默认会将 cin 、 cout
    等 C++ 流对象与 stdin 、 stdout 等 C 标准库的流对象同步在⼀起。这种同步操作意味着每次
    使⽤ cin 或 cout 时,都会⾃动刷新 C 标准库的缓冲区,以确保 C++ 和 C 的 I/O 是⼀致的。这
    就导致了性能的下降。
  2. 在默认情况下, cin 和 cout 之间存在⼀种绑定关系。这种绑定意味着,每当从 cin 读取数据
    时,任何之前通过 cout 输出的内容都会被强制刷新到屏幕上。这种绑定也可能导致性能问题,特
    别是在需要频繁读取⼤量数据的情况下。

max排序自定义类型

image-20250409102618878

字符的大小写转换与判断

image-20250409100453132

image-20250409100307087

判断字符是数字还是字母

image-20250409101053597

02_数据结构需要注意的内容

1.string

getline函数的使用

#include <iostream>
using namespace std;
#include <string>int main()
{string s; getline(cin,s); //读入带空格的字符串 cout<<s;return 0;
}

默认以\n结束读取,当然也可自定义结束字符:

#include <iostream>
using namespace std;
#include <string>int main()
{string s; 
//	getline(cin,s); //读入带空格的字符串 
//	cout<<s;getline(cin,s,'a');cout<<s; return 0;
}

image-20250409083843007

string::find

int main()
{string s = "hello world hello everyone";string str = "llo";size_t n = s.find(str); //2cout<< n <<endl; n = s.find(str,n+1); //14cout<< n <<endl;return 0;
}

image-20250409084810105

substr截取字符串

image-20250409085030024

string与int之间的转化

image-20250409091156847

翻转字符串

image-20250409093042431

2.优先级队列(priority_queue)

自定义结构进行排序

#include <iostream>
using namespace std;
#include <queue>
struct node
{int x,y,z;//	//用y比较 创建小根堆 
//	bool operator < (const node& n1) const
//	{
//		return y>n1.y;
//	}//	用y比较 创建大根堆 bool operator < (const node& n1) const{return y<n1.y;}
};int main()
{priority_queue<node> hp;for(int i = 1;i<=10;i++){hp.push({i,i+1,i+i});}while(hp.size()){auto t = hp.top(); hp.pop();cout<<t.x<<" "<<t.y<<" "<<t.z<<endl;}
}

3.set

image-20250409103751973

unique去重函数

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词