
C的小知识
文章平均质量分 76
C的杂碎基础知识
_洋
一起学习吧
展开
-
字符型和整型的关系
1.字符型和整型的关系:字符型和整型在c中大部分情况下都是可以通用的。因为字符型在电脑中的存储就是其ASCII码,关键是看如何输出。如:‘0’ 在电脑中存储的数值为48;例如: char a=0;如果以%c输出,输出结果就是0;如果以%d输出,输出结果就是48;同理:int a=48;如果以%c输出,输出结果就是0;如果以%d输出,输出结果就是482.字符型和整型的运算:两者进行运算以ASCLL进行运算,并且以数字的形式存储在电脑中,也是看如何输出。using namespace s原创 2021-10-12 18:21:53 · 8945 阅读 · 2 评论 -
快速幂取模
1.基本性质性质1:(a+b)%m=(a%m+b%m)%m性质2:(ab)%m=(a%mb%m)%m2.代码(递归)ll quickmod(ll a,ll b,ll c){if(b==1)return a;if(!(b&1)){ll t=quickmod(a,b/2,c);return tt%c;}else{ll t=quickmod(a,b/2,c);re...原创 2020-02-12 20:35:36 · 146 阅读 · 0 评论 -
优先队列
1.定义:priority_queue翻译为优先队列2.性质:队列自动排序;3.使用:priority_queue<数据类型,vector<数据类型>,greater<数据类型> > 从小到大priority_queue<数据类型,vector<数据类型>,less<数据类型> > 从大到小priority_qu...原创 2020-02-14 22:50:31 · 184 阅读 · 0 评论 -
栈
1.定义:利用一组地址连续的存储单元依次自栈底到栈顶存放栈的数据元素.(而栈顶是随着插入和删除而变化的,可以用一个整形变量top存放栈顶的指针,数据入栈或出栈时使整形变量 top分别加1或减1。)2.栈的基本操作:(1)初始化栈 stackvis ,定义一个栈(2)入栈 vis.push(x)(3)出栈 vis.pop()(4)判断是否为空 vis.empty()(5)判断栈中...原创 2020-02-14 11:09:36 · 331 阅读 · 0 评论 -
二分法
1.思路:在答案区间二分找答案2.二分查找:复杂度logn(1)查找区间单调排序(2)取中点判断答案所在的区间,进而缩小区间;(3)继续查找知道找到答案(4)循环终止的条件有很多,依情况而定(如:右端点小于左端点,达到精度,查找成功等);3.两个函数(1)upper_bound(a,a+5,7) 返回数组a中第一个大于7的元素下标(2)lower_bound(a,a+5,7) 返...原创 2020-02-14 11:00:48 · 189 阅读 · 0 评论 -
队列的基本原理
1.队列的定义队列就是允许在一端进行插入,在另一端进行删除的线性表。允许插入的一端称为队尾,通常用一个队尾指针r指向队尾元素,即r总是指向最后被插入的元素;允许删除的一端称为队首,通常也用一个队首指针f指向排头元素的前面。初始时f=r=0。2.与栈的区别:栈:先入后出;队列:先入先出;3队列的基本操作:(1)初始化队列 queuevis ,定义一个队列(2)入队 vis.push(x)...原创 2020-02-12 20:12:13 · 786 阅读 · 0 评论 -
最大公约数和最小公倍数
一、.gcd原理及模板1.gcd利用欧几里得算法原创 2020-02-10 22:44:19 · 271 阅读 · 0 评论 -
二进制枚举
一、二进制操作算数位运算:A=60(0011 1100)B=13(0000 1101)1.与(&):两个二进制数,同 1为 1,否则为 0。 A & B=12(0000 1100)2.或(|):两个二进制数,同 0为 0,否则为 1。 A | B=61(0011 1101)3.非 按位取反(~):对二进制每一位进行了一次取反操作,若二进制数位0,则变成1,否则变成0。...原创 2020-02-10 09:04:48 · 200 阅读 · 0 评论 -
暴力枚举
1 .枚举算法:.把各种可能的情况都考虑到,并对所得的结果逐一进行判断,过滤掉那些不符合要求的,保留那些符合要求的。2. eg:给定2到15个不同的正整数,计算这些数里面有多少个数对满足:数对中一个数是另一个数的两倍。思路:找出所有结合,写出所有情况,判断两个数是否一个为另一个的倍数。for(int i=1;i<=n-1;i++){for(int j=i+1;j<=n;j++...原创 2020-01-31 16:32:44 · 669 阅读 · 0 评论 -
排序
排序一、sort 排序1.来源:包含在头文件#include的c++标准库里2.应用:(1)sort(a,a+n) : a 表示数组的起始地址,即数组名;a+n 表示数组的终止地址(即起始地址加个数)默认从小到大排序(2)sort(a,a+n,less<要进行排序的数据类型>());从小到大排序(3)sort(a,a+n,greater<要进行排序的数据类型...原创 2020-01-23 15:59:31 · 701 阅读 · 0 评论 -
结构体
基础知识:(1)结构体的定义:C++ 中的结构体是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。(2)结构体类型声明和变量定义:struct 类型名{数据类型1 成员名1;数据类型2 成员名2;…} 变量名;(3) 使用:a. 引用结构体变量中成员的格式为:结构体变量名. 成员名b.可以对结构体变量的整体进行操作。eg: swap(a[i]...原创 2020-01-14 11:45:17 · 248 阅读 · 0 评论 -
二维数组
二维数组基础知识(1) 二维数组的定义:二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。(2) 格式: int a[][];(3)初始化 :分段赋值:int a[2][2] = { { 1 , 2 }, { 3 ,4};连续赋值:int a[2][2] = { 1 , 2 , 3 , 4 };...原创 2020-01-12 11:56:13 · 251 阅读 · 1 评论 -
map pair string
一、pair1.定义:“二元结构题的替代品”;实际就是含有两个变量的结构体;相当于:struct pair{typename1 first;typename2 second;}pair有两个参数,分别对应first和second的数据类型,可以是任意基本数据类型或者容器。2.定义一个pair的方法为:pair<typename1,typename2> name;/* ...原创 2020-02-18 15:40:34 · 308 阅读 · 0 评论 -
队列+素数
problem A:机器人机器人Bo很聪明,会做许多事情。惟独对自然数的理解与人类不一样,它是从右往左读数。比如,它看到123时,会理解成321.让它比较23与15哪一个大,它说15大。原因是它的大脑会以为是32与51在进行比较.再比如让它比较29与30,它说29大。 当然对于像90,它会把它当成9处理。给定Bo N个自然数x,让它将这N个数按从小到大排序出来。你会认为它如何排序?Input...原创 2020-02-17 00:51:23 · 382 阅读 · 0 评论 -
将前n个元素拷贝到字符串后面并输出题目
题目:将前n个元素拷贝到字符串后面并输出例 输入 abcdefg输出 efgabcd法一:(1)利用scanf把字符串存入数组a(2)然后把数组a中字符串保存到数组b中(3)把数组a中的字符串从第n个位置开始的子串移动到开头位置;(4)把b数组中的第n个位置改为\0;( 5 )利用strcat函数把b数组中字符串连接到a数组中。#include <stdio.h>...原创 2020-04-27 17:33:30 · 154 阅读 · 0 评论 -
c中改变颜色的函数
1.改变下一个输出或输入字体和背景的颜色:#include <windows.h>int color(int c){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),c);return 0;//改变颜色的函数}原创 2020-07-01 12:09:42 · 6416 阅读 · 0 评论