
C++笔记
cloudless_sky
快乐coder
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
scanf,printf的常见格式
scanf("%d%d",&a,&b); scanf("%d,%lf,%c",%a,&b,&c); scanf("%s",str); double型输入时形式为lf,输出时形式为f。 &是取地址符,str不用加取地址运算符,是因为数组名称本身就代表了这个数组的第一个元素的地址。 scanf一般以空白(空格,tab)结束读取,但是%c可以读空白字符。 printf("%d\n%f\n",a,b); printf("%5d\n",a); 可以使得不足5位的int 型原创 2021-04-04 22:14:12 · 720 阅读 · 0 评论 -
oj输入输出--字符串流,不告知行数
输入未知行整数,整数之间用空格隔开; #include<iostream> using namespace std; int main(){ int n; while(cin>>n){ int sum=0; sum+=n; while(cin.get()!='\n'){ int k=0; cin>>k; sum+=k;原创 2021-04-01 16:19:56 · 275 阅读 · 0 评论 -
cin、cin.get()、cin.getline()、getline()的区别
点击转载转载 2021-04-01 14:36:53 · 109 阅读 · 0 评论 -
ASCII码
ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。 产生原因: 在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存原创 2021-03-16 13:04:52 · 514 阅读 · 0 评论 -
sort函数的时间、空间复杂度
sort函数进行排序的时间复杂度为n*log2n。 原理:不是简单的快排 STL的sort()算法,数据量大时采用Quick Sort,分段递归排序,一旦分段后的数据量小于某个门槛,为避免Quick Sort的递归调用带来过大的额外负荷,就改用Insertion Sort。如果递归层次过深,还会改用Heap Sort。 空间复杂度嘛,我还不清楚,待补充。 ...原创 2021-03-04 21:30:55 · 14496 阅读 · 1 评论 -
数组太大要定义成全局的
数组为什么不能定义太大 堆栈大小转载 2021-03-04 11:43:06 · 769 阅读 · 1 评论 -
C与C++一些输出格式上的区别
1、强制转换mid从double到int double mid; int mid1=int(mid); 2、想要得到double类型的mid,由于a[n]是int型,为了不丢失小数点后的精度 mid=(a[n/2-1]+a[n/2])/2.0;或者mid=double((a[n/2-1]+a[n/2]))/2;` 3、输入 输出确定的几位小数 scanf("%d",&n); double mid; int mid1=int(mid); printf("%d %.1f %d",max,mid,原创 2021-03-02 21:15:26 · 398 阅读 · 0 评论 -
C++ 二进制、十进制、八进制和十六进制转换的函数
#include <iostream> #include<fstream> #include<bitset> using namespace std; int main(){ int x; cout<<" 请输入要转换的十进制数字:"<<endl; cin>>x; cout<<" 二进制"<<bitset<8>(x)<<endl; //输出为八位二进制数 cout<原创 2021-02-10 20:23:49 · 2338 阅读 · 0 评论 -
CCF 201312-3 最大的矩形 C++ 没全懂
暴力解法100分:对于每个矩形都作为一次左边界,依次加入右边的矩形,并根据后面矩形的高度调整矩形的宽,并比较当前矩形的面积是否变大。 //矩形最大面积暴力解法 #include <iostream> using namespace std; int main() { int n,low,ans=0; cin >> n; int a[n]; for(int i=0;i<n;i++) { cin >> a[i]; } for(int i=0;i&.原创 2021-01-16 19:18:55 · 185 阅读 · 0 评论 -
杭电oj 2039 C++ 三角形
#include <iostream> using namespace std; int main() { int M; double A,B,C; cin >> M; while(M--) { cin >> A >> B >> C; if((A+B>C)&&(A+C>B)&&(B+C>A)) cou.原创 2021-01-04 16:09:52 · 146 阅读 · 0 评论 -
杭电oj 2010-2011
2010 水仙花数 #include <iostream> #include <cmath> using namespace std; int main() { int m,n; int a,b,c; while(cin >> m >> n) { bool flag = false; if(m>n) swap(m,n); if(m<100 || n>999) br原创 2021-01-04 15:59:17 · 143 阅读 · 1 评论 -
杭电oj 2007-2008-2009
2007 平方和与立方和 #include <iostream> #include <cmath> using namespace std; int main() { int x,y; int s1=0; int s2=0; while(cin >> x >> y) { if(x>y) swap(x,y); for(int i=x;i<=y;i++) {原创 2021-01-04 15:18:37 · 119 阅读 · 0 评论 -
杭电oj 2004-2005-2006 C++
2004 成绩转换,把百分制转换成等级 #include <iostream> using namespace std; int main() { int t; while(cin >> t) { if(t<0 || t>100) cout << "Score is error!" << endl; else if(t>=90 && t<=100原创 2021-01-04 14:32:54 · 145 阅读 · 0 评论 -
杭电oj 2003 C++ 求绝对值
#include <iostream> #include <cmath> #include <iomanip> using namespace std; int main() { double a; while(cin >> a) { cout << fixed << setprecision(2) << fabs(a) << endl; } return 0; } .原创 2021-01-04 13:47:53 · 216 阅读 · 0 评论 -
杭电oj 2002 C++
#include <iostream> #include <cmath> #include <iomanip> #define pi 3.1415927 using namespace std; int main() { double r,v; while(cin >> r) { v = 4 * pi * pow(r,3)/3; cout << fixed << setprecision(3).原创 2021-01-04 13:37:14 · 167 阅读 · 0 评论 -
杭电oj 2001 C++ 计算两点间的距离
#include <iostream> #include <cmath> #include <iomanip> using namespace std; int main() { double x1,y1,x2,y2,dist; while(cin >> x1 >> y1 >> x2 >> y2) { dist = sqrt(pow(x1-x2,2)+pow(y1-y2,2)); .原创 2021-01-04 13:18:29 · 239 阅读 · 0 评论 -
杭电oj 2000 C++
#include <iostream> using namespace std; int main() { char input[3]; while(cin >> input[0] >> input[1] >> input[2]) { if(input[0]>input[1]) swap(input[0],input[1]);//swap包含在std中 if(input[0]>input[.原创 2021-01-04 13:10:40 · 183 阅读 · 0 评论 -
C++ 输入输出函数
要使用输入输出函数,首先要: #include <iostream> using namespace std; C++使用一个预处理器,该程序在进行主编译之前对源文件进行处理,它处理以#开头的编译指令,不必执行任何特殊的操作来调用该预处理器,它会在编译程序时自动运行。 第一行是编译指令,它导致预处理器将iostream头文件的内容添加到程序中,iostream文件的内容随源代码文件的内容一起被发送给编译器。实际上,iostream文件的内容将取代程序中的第一行代码。 第二行是using编译指令原创 2021-01-04 11:37:11 · 5685 阅读 · 0 评论 -
杭电oj 1089 1090 1091 1092 1093 1094 1095 1096 输入输出 C++
1089 #include <iostream> using namespace std; int main() { int a,b; while(cin>>a>>b) { cout << a+b << endl; } return 0; } 里插入代码片 1090 #include <iostream> using namespace std; int main() {原创 2021-01-03 20:04:41 · 430 阅读 · 0 评论 -
杭电oj 1002 C++
加数太长,普通的基本类型无法满足,用string类型,将其char数位逐位相加。char字符以ASCII的形式存储,两个char字符相加,实际是它们的ASCII相加。两个char字符相加后,如果直接输出,则是它们ASCII的和,想要输出对应的字符,必须将结果赋值给char类型的变量,或者强制转换为char类型。两个数字字符相加后,如果想输出整数状态下的结果,需要减去0的ASCII,即减去‘0’【对于ASCLL的内部计算和外部显示仍然不太明白,待学习】。注意输出格式,每个结果之间要有空行,最后一个结果输出后.原创 2021-01-02 11:40:02 · 303 阅读 · 0 评论 -
杭电oj 1000 1001 C++
1000 #include <iostream> int main() { using namespace std; int a,b; while(cin>>a>>b) { cout << a+b << endl; } return 0; } 1001 #include <iostream> int main() { using namespace s原创 2021-01-02 11:12:19 · 225 阅读 · 0 评论 -
左叶子之和
计算给定二叉树的所有左叶子之和。 示例: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/sum-of-left-leaves 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 思路: 先序递归。这道题的重点在于如何判断是左边的叶子。如果左孩子不空且它是叶子节点就加和,否则如果左孩子空则去遍历右孩子,如果左孩子不空但是不是叶子节点就继续遍历左右孩子。 /** *原创 2020-12-29 15:45:18 · 188 阅读 · 0 评论 -
两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/two-sum 著作权归领扣网络所有转载 2020-12-29 14:34:07 · 84 阅读 · 0 评论 -
青蛙跳台阶问题
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 输入:n = 2 输出:2 示例 2: 输入:n = 7 输出:21 示例 3: 输入:n = 0 输出:1 递归算法:43时会超时 class Solution { public: int numWays(int n) { if(n==0 || n==1)原创 2020-12-29 14:15:44 · 209 阅读 · 0 评论 -
leetcode刷题--简单题1比特与2比特字符
第一题 1比特与2比特字符 有两种特殊字符。第一种字符可以用一比特0来表示。第二种字符可以用两比特(10 或 11)来表示。 现给一个由若干比特组成的字符串。问最后一个字符是否必定为一个一比特字符。给定的字符串总是由0结束。 示例 1: 输入: bits = [1, 0, 0] 输出: True 解释: 唯一的编码方式是一个两比特字符和一个一比特字符。所以最后一个字符是一比特字符。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/1-bit-and-原创 2020-12-28 21:15:32 · 306 阅读 · 0 评论 -
**C++ 用类封装 pthread
C++ 用类封装 pthread 转载https://blog.youkuaiyun.com/wangzhiyu1980/article/details/43984465 一个项目中需要用到pthread,发现把它封装到类中使用起来更加的方便。 这里保存了实例代码,以备以后使用。 头文件中定义了ThreadBase类,它包含了线程基本的一些接口,start() join() 和quit() run()为接口...转载 2020-03-17 18:31:24 · 390 阅读 · 0 评论