C/C++
文章平均质量分 73
记录下自己学习C++的遇到的问题及重要的知识
~豆沙味的旺仔
这个作者很懒,什么都没留下…
展开
-
C++ 11 Lambda表达式
C++11的一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。对于C++这门语言来说来说,“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥,但很多高级语言在很早以前就已经提供了Lambda表达式的功能,如C#,Python等。今天,我们就来简单介绍一下C++中Lambda表达式的简单使用。声明Lambda表达式Lambda表达式完整的声明格式如下:[capture list] (params list) mutable exception-&g.转载 2022-03-28 14:16:36 · 318 阅读 · 0 评论 -
万能头文件#include<bits/stdc++.h>
最近在打cf时赛后翻阅别人的代码总是会发现一个陌生而奇怪的头文件#include<bits/stdc++.h>奇怪之处就在于基本上所有的代码只要用了这个头文件就不再写其他头文件了。百度过后仿佛打开了新世界的大门,头文件居然还可以这样用!!!#include<bits/stdc++.h>包含了目前c++所包含的所有头文件!!!!从此开启开挂般的人生啊!! 现在再看下面这一堆乱七八糟的头文件显得莫名的冗杂: 1 #include <iostream>.转载 2022-03-28 13:57:17 · 604 阅读 · 0 评论 -
cin详解(get()、getline()、clear()、sync())
简述在C中,输入输出用scanf和printf,在输入数据的同时还需说明数据的类型,如果输入数据较多,那就很麻烦,而C++中也有相似的东西cin和cout,它们来自C++的一个名叫” iostream”的类库。iostream是由istream(输入流)和ostream(输出流)派生。所以在iostream中就有了输入和输出的相关对象:cin:标准输入(standard input)的istream类对象,cin使我们可以从设备读取数据。cout:标准输出(standard output)的os.转载 2022-03-26 18:20:17 · 797 阅读 · 0 评论 -
C++ 学习——STL库set
set集合容器:二叉排序树 ( Binary Sort Tree)(二叉搜索树)定义:它或者是一棵空树,或者是具有下列性质的二叉树若它的左子树不空,则左子树上所有结点的值均小于它的根结构的值若它的右子树不空 ,则右子树上所有结点的值均大于它的根结点的值它的左、右子树也分别为二叉排序树平衡二叉树(AVL树)平衡二叉树(Balanced Binary Tree)(简称平衡树,A...转载 2020-04-26 23:12:28 · 265 阅读 · 0 评论 -
你了解c++中的关键字virtual吗?
virtual在英文中表示“虚”、“虚拟”的含义。c++中的关键字“virtual”主要用在两个方面:虚函数与虚基类。下面将分别从这两个方面对virtual进行介绍。1.虚函数虚函数源于c++中的类继承,是多态的一种。在c++中,一个基类的指针或者引用可以指向或者引用派生类的对象。同时,派生类可以重写基类...转载 2020-04-22 17:52:30 · 234 阅读 · 0 评论 -
一般筛法求素数+快速线性筛法求素数
TAG 素数 数论素数总是一个比较常涉及到的内容,掌握求素数的方法是一项基本功。基本原则就是题目如果只需要判断少量数字是否为素数,直接枚举因子2 。。N^(0.5) ,看看能否整除N。如果需要判断的次数较多,则先用下面介绍的办法预处理。 一般的线性筛法首先先介绍一般的线性筛法求素数void make_prime() { memset(pr...转载 2020-04-11 11:53:28 · 297 阅读 · 0 评论 -
为什么printf()用%f输出double型,而scanf却用%lf呢
原文:http://blog.sina.com.cn/s/blog_899f46e501014cu6.html 示例:double x;scanf(“%f”,&x);输入“123.4”,输出x的值结果为0,没有接收输入的数据,再输入别的数据,结果都为0。这是因为用户定义x为双精度型数据,而用“%f”格式输入数据,仍不能接收,应该使用“%lf”或“%le”,即scanf(“...转载 2020-04-10 21:38:01 · 364 阅读 · 0 评论 -
全排列函数(next_permutation) 及递归实现全排列
1.全排列函数(next_permutation) 实现 这个函数就是用来求数组的全排列的,至于怎么用,看下面的介绍:这是一个c++函数,包含在头文件algorithm里面,这个函数可以从当前的数组的大小按照字典序逐个递增的顺序排列看下面的模板int a[];do{ }while(next_permutation);下面代码可以输出1~n的全排列:#include &...原创 2020-04-03 21:17:32 · 574 阅读 · 0 评论 -
C语言中scanf函数与空格回车
众所周知,C语言中的scanf函数的作用是从标准输入设备(通常是键盘)读取输入值,并存储到参数列表中指针所指向的内存单元。下面从几个方面说一下一些稍微细节的东西。下面的实验都在vc6.0中通过。1、scanf的返回值scanf通常返回的是成功赋值(从标准输入设备赋值到参数列表所指定的内存区域)的数据项数,如果出错或是遇到end of file(注意,如果想从键盘输入EOF,在windows的D...转载 2020-03-28 08:40:14 · 357 阅读 · 0 评论 -
C++ sort函数详解(史上最完整QAQ)
出处: http://www.cnblogs.com/AlvinZH/作者: AlvinZH阅读目录1.sort2.sort简介3.sort扩展 1.sort使用:#include <algorithm> using namespace std;作用:排序时间复杂度:n*lg(n)实现原理:sort并不是简单的快速排序,它对普通的快速排...转载 2020-03-27 22:33:32 · 3122 阅读 · 4 评论 -
const int * ,const int * (int const *) 以及 const int * const 的区别
int const *p与const int *p意义一样。从右往左看,进行解析,这个p是个指针,而且是个常量,类型是整型。可称为指针常量特点:*p指向一个整型的常量,但是不能通过修改p所指向内存单元的值,只能修改所指向的对象,或者通过改该对象的值。such as: int a = 10; int b = 20; int c = 55; int const *p = &...原创 2020-03-20 16:52:41 · 281 阅读 · 0 评论 -
函数模板
参考资料 函数模板思考:如果重载的函数,其解决问题的逻辑是一致的、函数体语句相同,只是处理的数据类型不同,那么写多个相同的函数体,是重复劳动,而且还可能因为代码的冗余造成不一致性。解决:使用模板例:求绝对值函数的模板函数模板定义语法语法形式:template <模板参数表>函数定义模板参数表的内容类型参数:class(或typename)...原创 2020-02-13 22:51:02 · 136 阅读 · 0 评论 -
C++中的平方、开方、绝对值怎么计算
版权声明:本文为CSDN博主「傅海林Note」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。#include <math.h>//平方 pow()int a = pow(4,2);// 4的平方=16//开方int b = pow(4,0.5);// 4的平方根=2int c = sqrt(4);// 4的平方根=2//整数绝对值...转载 2020-02-13 21:29:21 · 1731 阅读 · 0 评论 -
C++随机数生成方法
转载于博客园无限一、C++中不能使用random()函数==================================================================================本文由青松原创并依GPL-V2及其后续版本发放,转载请注明出处且应包含本行声明。C++中常用rand()函数生成随机数,但严格意义上来讲生成的只是伪随机数(pseudo-r...转载 2020-02-13 21:08:25 · 617 阅读 · 0 评论 -
引用与引用作为函数的参数
1、&S是引用,S和传入的形参变量共用同一个存储空间,相当于别名。2、*S是指针,S是指针变量,它是有自己的存储空间的,只是它的存储空间存的是形参变量的地址。 对一个数据建立一个“引用”,他的作用是为一个变量起一个别名。这是C++对C语言的一个重要补充。如何建立一个引用` int a = 5; int &b = a; cout<<...转载 2020-02-13 20:55:58 · 956 阅读 · 0 评论 -
C++类有继承时,析构函数必须为虚函数
版权声明:本文为CSDN博主「luoweifu」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。虚函数与多态一文中讲了虚函数的用法和要点,但少讲了一点,就是虚函数在析构中的用法,本文就是修复一bug的。C++类有继承时,析构函数必须为虚函数。如果不是虚函数,则使用时可能存在内在泄漏的问题。假设我们有这样一种继承关系: 如果我们以这种方式创建对...转载 2020-02-13 16:11:31 · 393 阅读 · 0 评论 -
C++ protected成员访问权限
版权声明:本文为CSDN博主「谭海燕」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。关于C++中protected的访问权限的讨论已经是一个很陈旧的话题了,陈旧到大家都不愿意去讨论,觉得他见到到吃饭睡觉那么自然。我再次读《C++ Primer》的时候,其中关于protected 成员的描述是这样的: protected Members&n...转载 2020-02-12 22:38:35 · 595 阅读 · 0 评论 -
C++的三种继承方式
1.对比特征 公有继承 保护继承 私有继承 公有成员变成 派生类共有成员 派生类受保护成员 派生类私有成员 受保护成员变成 派生类受保护成员 派生类受保护成员 派生类私有成员 私有成员变成 派生类只能通过基类接口访问 派生类只能通过基类接口访问 派生类只能通过基类接口访问 能否隐式向上转型 是 是...转载 2020-02-12 22:05:11 · 217 阅读 · 0 评论 -
数组作为函数参数
版权声明:博客园巫师笔记数组作为函数参数 数组可以作为函数的参数使用,进行数据传送。数组作为函数参数有两种形式。(1)把元素作为实参使用。(2)把数组名作为函数的形参和实参使用。1、数组元素作为函数实参数组元素就是下标变量,它与普通变量并无区别。因此它作为函数实参使用与普通变量是完全相同的,在发生函数调用时,把作为实参的数组元素的值传递给形参,实现单向的值传递。例:判别一个整数数组...转载 2020-02-12 15:23:46 · 1405 阅读 · 0 评论 -
C++必须使用【初始化列表】初始化数据成员的三种情况
版权声明:本文为CSDN博主「凡旭国」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。类对象的构造顺序是这样的:1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员;2.进入构造函数后在构造函数中执行一般赋值与计算。使用初始化列表有两个原因:原因1.必须这样做:《C++ Primer》中提到在以下三种情况下需要使用初始化成员列表: ...转载 2020-02-12 14:54:32 · 439 阅读 · 0 评论 -
c++内联函数的使用
版权声明:本文为CSDN博主「逆风丶」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。为什么要使用内联函数?学过计算机基础的人都知道,程序设计讲究效率。plus:在c语言中,宏定义是我们保护效率的一大妙招,(宏:代码处不加验证的简单替代,在编译前将程序中有关字符串替换成宏体)如 defin pi 3.14,用3.14替换pi这个字符在程序运行前。但是在...转载 2020-02-12 13:18:12 · 247 阅读 · 0 评论 -
【C++】智能指针详解
参考资料:《C++ Primer中文版 第五版》我们知道除了静态内存和栈内存外,每个程序还有一个内存池,这部分内存被称为自由空间或者堆。程序用堆来存储动态分配的对象即那些在程序运行时分配的对象,当动态对象不再使用时,我们的代码必须显式的销毁它们。在C++中,动态内存的管理是用一对运算符完成的:new和delete,new:在动态内存中为对象分配一块空间并返回一个指向该对象的指针,delete:...转载 2020-02-11 20:34:43 · 185 阅读 · 0 评论 -
数组名作为函数参数时会退化为指针
void arraySum(int a[],int b[]){cout < <“sizeof(a)” < <sizeof(a) < <endl;cout < <“sizeof(a[0])” < <sizeof(int) < <endl;int length_a = sizeof(a)/sizeof(int);}//...转载 2020-01-31 23:00:11 · 340 阅读 · 0 评论 -
变量的声明和定义及extern与static使用注意事项
变量定义和声明的区别:1.变量的声明有两种情况:1.定义性声明(定义):需要建立存储空间,eg:int a;在声明时就已经建立好存储空间了。2.引用性声明:不需要建立存储空间,eg:extern int a;仅是变量a的声明,不需要建立存储空间,变量a在其他文件中定义。2.从广义的角度来看,声明中包含定义,定义是声明的一个特例。3.外部变量的定义只能有一次,它位于所有函数之外;同一文件...转载 2020-01-31 18:59:32 · 563 阅读 · 0 评论 -
C++ 向上向下取整,四舍五入取整,四舍五入保留指定位小数
将浮点数取整或者四舍五入的数据处理情况经常见到,下面做一下总结注意函数取整返回值均为double型,在用printf输出时应注意头文件#include#include<iostream>#include<cmath>using namespace std;int main(){ double a=2.5; cout<<ceil(a)...原创 2019-12-30 22:00:09 · 1116 阅读 · 0 评论 -
c语言各进制表示
c语言中各种进制表示方法:二进制 据我所知,c/c++中没有二进制字面常量的表示方法(大概因为所有的数据本来就是以二进制存放的)八进制 04567 注意是前面的是数字0十进制 没啥说的。。。。。。什么?你不会写,你是火星人吧!十六进制 0x9adf 注意0x前缀...转载 2019-12-30 21:47:55 · 1021 阅读 · 0 评论