
C++
L-M-Y
健康和自由至上
展开
-
C/C++输入空行代表输入结束
示例string a;while(cin>>a){ getchar(); if(cin.get()=='\n') break;}原创 2021-08-14 10:51:51 · 2087 阅读 · 1 评论 -
min_element()和max_element()函数
好家伙,之前只知道有sort快排函数,现在居然发现还有找最大值最小值的函数,下巴又被惊掉了(菜鸟表示震惊,并决定好好学习)头文件#include<algorithm>用法这俩函数的作用:返回容器中的最小值或最大值调用形式:max_element(begin,end,cmp);返回值是一个迭代器,所以要输出值,需加上取值符号“*”;cmp为可选择参数()cmp可写可不写适用范围:vector等容器,也用于int a[],char a[],也可用于结构体数组(我不禁想说一原创 2021-08-10 12:01:35 · 216 阅读 · 0 评论 -
位运算整理(C/C++)实现
之前,我对位运算表示不屑一顾,今天偶然看到了大佬的一篇文章,好家伙,直接把我下巴惊掉了。没啥想说的,就一句话,位运算,牛逼!(本文摘自大佬的文章)原文链接:https://mp.weixin.qq.com/s/C6o6T9ju34vAxNBg5zobWw位运算简介1位逻辑运算符&(位“与”)and^(位“异或”):规则:相同为0,相异为1,0∧0=0,0∧1=1,1∧0=1,1∧1=0应用:(1)与0相∧,保留原值(2)交换两个值,不用临时变量( 3)与自己相 ∧,值为0|(位原创 2021-08-10 11:07:48 · 211 阅读 · 0 评论 -
C++ 三元运算符 ?:
C++运算符分类C++的运算符分三类:算术运算符,关系运算符和逻辑运算符而“?:”是唯一的三元条件运算符用法:**//条件?表达式1:表达式2;**“条件”为真,则整个表达式的结果就是表达式1,反之为表达式2举个小栗子吧~#include <iostream>using namespace std;int main(){ int a = 5, b = 6; cout << (a > b ? a : b);}输出结果为:6(这就是一个典型的两个数原创 2021-08-06 12:53:07 · 962 阅读 · 0 评论 -
C++ 向上取整、向下取整、四舍五入函数
总结一下几种常见的取整函数~三种取整函数函数名称用法举例floor向下取整(不大于自变量的最大整数)(2.1,2.5,2.9,)=2,-2.9=-3ceil向上取整(不小于自变量的最大整数)(2.1,2.5.2.9)=3,-2.9=-2round四舍五入(四舍五入到最邻近的整数)2=2,2.4=2,2.5=3注意:floor(),ceil()包含在#include <math.h>这个头文件之中,但是round在C++中没有函数模板可以调原创 2021-08-05 14:52:24 · 2665 阅读 · 0 评论 -
关于C++向量使用的一些总结
删除元素一般情况下,使用向量就是因为删除元素很方便,但是最近出了很多错误。关于删除元素,做一下总结吧~删除单个元素vector<int> a;a.erase(a.begin()+2);这是删除第三个元素!若是想删除下标为i的元素,位置要填vec.begin()+i+1!!!(这个错好几次了)删除一段区间的元素vector<int> a;a.erase(a.begin()+i,a.begin()+j);这是删除区间[i,j-1]的元素!!!比如想删除i-j的原创 2021-08-05 14:31:54 · 256 阅读 · 0 评论 -
C++二分查找总结
二分查找是一种非常快速的查找方法,又称折半查找。二分查找定义二分查找(Binary Search)技术。它的前提是线性表中的记录必须是关键码有序(通常为升序),线性表必须采用顺序存储。二分查找的基本思想:在有序表中,取中间记录作为比较对象,若给定值与中间记录相等,则查找成功;若给定值小于中间记录的关键字,则在中间记录的左半区继续查找;若给定值大于中间记录的关键字,则在中间记录的右半区继续查找。不断重复,直至查找成功,或所有查找区域无记录查找失败为止。代码示例//by lmy#include原创 2021-08-03 10:43:37 · 224 阅读 · 0 评论 -
C++封装的概念与意义
不知不觉大一已经结束啦,但是C++学的还不是很扎实,于是决定对于一些基本概念再复习一下。众所周知,C++有三大特性:封装、继承、多态封装概念:隐藏对象的属性和实现细节,仅对外公开接口和对象进行交互。函数也是封装的一种形式,函数所执行的细节行为被封装在函数实体中,同时隐藏了实现细节(即你可以调用一个函数,但是不能够访问函数所执行的语句)封装的意义1.可将属性和行为放在一起去表示一个事物例:class 类名 {访问权限:属性/行为}2.将属性和行为加以权限控制访问权限:1.public原创 2021-08-03 09:49:20 · 2238 阅读 · 0 评论 -
C/C++中的无限大无限小
整型上下限1.INT_MAX由于int占据4个字节,一个字节八位,所以int占据32位再根据二进制编码的规则,可得INT_MAX=2^32-12.INT_MIN同理可得,INT_MIN=-INT_MAX用处:如果得到数组中的最小或者最大值,可使用INT_MAX或INT_MIN初始化最小值最大值int maxn=INT_MAX;正无穷与负无穷C++中表示正无穷是0x3f3f3f3f(1061109567),负无穷是0xc0c0c0c0(-1061109568)注意,负无穷在printf原创 2021-08-02 16:46:01 · 3780 阅读 · 0 评论 -
C++ auto的用法
概括我第一次看到auto时,想到的是automatic,自动的。其实顾名思义,auto就是这个意思。auto就是根据你为变量赋的值,来自动为变量做类型转换的关键字auto的用法干说感觉不太行啊,举个小栗子吧~比如我们要遍历一个向量//一般写法vector<int> a; vector<int>::iterator it; for(it=a.begin();it!=a.end();it++) { //; }//auto写法vector<int>原创 2021-07-27 20:24:39 · 1060 阅读 · 0 评论 -
C++ pair的简单使用
昨天打cf来着,有道题用了优先队列。好家伙,一学这优先队列,得学map,学map又得学pair,那能怎么办呢,一点点来呗~pair的定义首先解释一下pair是个什么东西,在英文中pair被翻译为“对”。其实在我的理解里,就是一个小型结构体,pair将两个元素组合成一组数据,由于是结构体,所以在使用其中数据时,可以直接使用,不像类还要封装来封装去。头文件:#include定义方式如下:类模板:template<class T1,class T2> struct pairT1,T2可以原创 2021-07-24 23:25:39 · 225 阅读 · 0 评论 -
C++ sort函数用法总结
sort函数是C++标准库的排序函数,其效率很高(高于冒泡排序),时间复杂度为n*log(n)使用方法1.其头文件为#include<algorithm>2.sort函数有三个参数:1)第一个,排序的起始地址2)第二个,排序的结束地址3)排序方法,升序或降序,若不写第三个参数,则默认为升序。3.使用模板sort(begin,end,cmp);cmp为排序方式排序函数的写法升序写法//升序bool cmp1(int a, int b){ return a <原创 2021-07-19 09:29:09 · 233 阅读 · 0 评论 -
引用和指向函数的指针
引用通过对象名称直接访问对象,优点是直观,操作哪个对象一目了然,缺点是一个函数内部不能使用另一个函数的局部变量。通过指针(或地址)间接访问对象,优点是无所不能,缺点是程序中大量出现的间接访问,是在分不清具体是哪个对象,需要通过上下文去分析。C++扩充了C语言对象访问方式,提供了引用访问。通过引用访问对象,结合了按名访问和按地址访问各自的优点,非常适合作为函数参数。1.引用作为函数参数简单来说,引用(reference)就是一个对象的别名,其声明形式为:引用类型 &引用名称=对象名称in原创 2021-05-25 17:09:13 · 471 阅读 · 0 评论 -
动态内存分配
引言在使用数组的时候,总有一个问题困扰着我们:数组应该有多大:而以下操作是错误的:int n;cin>>n;double a[n][n];//意图由输入n的值来确定数组的大小C++内存分配有两种方式:静态分配和动态分配。静态分配静态分配是指在编译时为程序中的数据对象分配相应的存储空间。由于是在编译时为数据对象分配存储空间,因此就要求在编译时空间大小必须是明确的,所以数组的长度必须是常量。而一旦编译完成,运行期间这个数组的长度就是固定不变的。动态分配动态分配是程序运行期间原创 2021-05-25 15:48:53 · 469 阅读 · 0 评论 -
静态成员和静态函数
静态成员类中可以定义静态的数据成员,从而实现同类的多个对象之间的数据共享。使用类的静态成员的优点是:1)静态成员的名字是在类的作用域中,因此可以避免与其他类的成员或全局对象名字冲突。2)静态成员可以实施封装,可以是私有成员,而全局对象不可以。3)静态成员是特定类关联的,结构清晰。例1:class employee{private: int empNo; int id; char *name; static int count;原创 2021-05-15 15:06:36 · 540 阅读 · 0 评论