
CPP
C语言知识点
lwgkzl
海风和着歌声,星空伴着代码
展开
-
c++ 如何输出8进制和十六进制和二进制
头文件iostream中提供控制符:dec:指示cout以十进制输出。 hex:指示cout以十六进制输出。 oct:指示cout以八进制输出。示例:/*by kzl*/#include#includeusing namespace std;int main(){ int n_max = 42; cout<<n_max<<endl; cout<<he原创 2017-11-30 22:02:20 · 37298 阅读 · 0 评论 -
c++ int和unsignedint溢出原理分析
首先,我们要找到int的最大值,在climits头文件中有一个常量是INT_MAX表示int的最大值。上溢:/*by kzl*/#include#includeusing namespace std;int main(){ int n_max = INT_MAX; unsigned int un_max = n_max; cout<<"有符号整数最大值:原创 2017-11-30 17:23:19 · 9565 阅读 · 1 评论 -
c++ 常见的读入优化模板及使用
很久没更了,先来水一篇,读入的模板及用法,当然这还不是最快的inline int read(){ char ch=getchar(); int x=0,f=1; while((ch>'9'||ch<'0')&&ch!='-') ch=getchar(); if(ch=='-') { f=-1...原创 2019-03-15 17:10:18 · 401 阅读 · 0 评论 -
c++ pair详解
总述:介绍pair的基本用法,包括pair的创建,排序,使用特性等1.pair的创建a.pair<int,int> p或者pair<int,int>p(0,1).b.可以使用make_pair()函数创建一个临时的pair变量,常用作pair作为函数参数时,参数的赋值。make_pair(0,1)c.一般我们可以在using namespace std;...原创 2018-11-18 17:24:57 · 18128 阅读 · 0 评论 -
c++ 结构体和vector进行lower_bound和upper_bound
总述:介绍结构体数组和包含结构体的vector怎么样使用lower_bound进行二分查找,upper_bound同理。前提:lower_bound:返回数组中第一个大于等于该元素的下标,int aa = lower_bound(array,array+arrayLen,num) - array;upper_bound:返回数组中第一个大于该元素的下标:int aa = upper...原创 2018-09-26 12:20:58 · 29009 阅读 · 3 评论 -
C++结构体指针 常用用法及注意事项
总述:c++结构体指针,顾名思义就是指向结构体的一个指针,这篇博客作用是记录c++结构体指针的常用用法及我经常犯的一个错误。定义结构体:struct My{ My *left; My *right; int val; My(){} My(int val):left(NULL),right(NULL),val(val){}};一般结构体变...原创 2018-08-20 10:00:14 · 33093 阅读 · 5 评论 -
c++ auto基本用法
总述:auto的原理就是根据后面的值,来自己推测前面的类型是什么。auto的作用就是为了简化变量初始化,如果这个变量有一个很长很长的初始化类型,就可以用auto代替。注意点:1.用auto声明的变量必须初始化(auto是根据后面的值来推测这个变量的类型,如果后面没有值,自然会报错)2.函数和模板参数不能被声明为auto(原因同上)3.因为auto是一个占位符,并不是一个他自...原创 2018-08-27 11:55:28 · 129102 阅读 · 19 评论 -
c++Double类型不能直接比较大小
被一道C语言课后练习题卡了好久,,,原因竟然是double的精度问题。写篇博客标记一下这个错误。如题,double a,b;然后直接if(a>b)或者if(a<b)或者if(a==b)都是不精确的。标准做法应该要加一个eps。const double eps = 1e-6//一般负六次就够了int e = 10;if(a+eps<10)//...if(a...原创 2018-03-14 00:18:54 · 21604 阅读 · 2 评论 -
c++ 字符串流 sstream(常用于格式转换)
from: http://blog.163.com/zhuandi_h/blog/static/180270288201291710222975/使用stringstream对象简化类型转换C++标准库中的提供了比ANSI C的更高级的一些功能,即单纯性、类型安全和可扩展性。在本文中,我将展示怎样使用这些库来实现安全和自动的类型转换。为什么要学习如果你已习惯了风格的转载 2017-08-15 10:57:33 · 472 阅读 · 0 评论 -
c++ cmath常用库函数
cmath中常用库函数:int abs(int i);//返回整型参数i的绝对值double fabs(double x);//返回双精度参数x的绝对值long labs(long n);//返回长整型参数n的绝对值double exp(double x);//返回指数函数e^x的值double log(double x);//返回logex的值,如果要求其他的,利原创 2017-07-26 09:41:38 · 6694 阅读 · 0 评论 -
归并排序+一个编程需要注意的地方
概念:归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。过程:比较a[i]和a[j]的大小,若a[i]≤a[j],则将第一个有序表中的元素a[i]复制到r[k]原创 2016-12-20 15:56:35 · 732 阅读 · 0 评论 -
关于getline的几点
一、string类的getline函数(全局函数) getline()函数的定义如下所示 1. istream& getline ( istream &is , string &str , char delim ); 2. istream& getline ( istream &is , string &str );is 进行读入操作的输入转载 2016-12-19 10:40:55 · 442 阅读 · 0 评论 -
C++中 string 的用法大全
C++中 string 的用法大全之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用 = 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 首先,转载 2016-12-18 19:41:57 · 454 阅读 · 0 评论 -
scnaf先后输入同一个字符数组是否会有影响
声明一个字符数组,然后用scanf输入,之前的字符长一些,之后输入的字符短一些,那么之前字符长的部分是否会出现在第二个字符串当中呢?代码如下:#includeusing namespace std;int main(){char s[32];while(scanf("%s",s)==1)printf("之后的字符串为: %s\n",s);return 0;}结原创 2016-12-21 10:36:18 · 897 阅读 · 0 评论 -
C++ 每次读取一行字符串输入
stream中的类(如cin)提供了一些面向行的类成员函数:getline()和get()。这两个函数都读取一行输入,直到到达换行符。getline()和get()函数不同的是:getline()将丢弃换行符,而get()将换行符保留在输入序列中1.面向行的输入:getline()getline()函数读取整行,它使用通过回车键输入的换行符来确定输入结尾调用方式:cin.g原创 2016-11-19 18:46:32 · 29075 阅读 · 0 评论 -
C语言 gets()和scanf()函数的区别
C语言 gets()和scanf()函数的区别scanf( )函数和gets( )函数都可用于输入字符串,但在功能上有区别。若想从键盘上输入字符串"hi hello",则应该使用__gets__函数。gets可以接收空格;而scanf遇到空格、回车和Tab键都会认为输入结束,所有它不能接收空格。char string[15]; gets(string); /*遇到回车认为输入结转载 2016-11-18 20:15:31 · 312 阅读 · 0 评论