
C/C++学习笔记
文章平均质量分 57
Layne...
遇事不决,可问春风
展开
-
关于C语言struct结构体字节对齐的计算
字节对齐规则:(1)结构体(struct)的数据成员中,第一个数据成员放在offset为0的地方,后面数据成员的偏移量必须是本身成员大小的整数倍,如有需要编译器会在成员之间加上填充字节。(2)结构体大小必须是所有成员大小的整数倍,也即所有成员大小的公倍数。#include<bits/stdc++.h>using namespace std;struct str { char a; int b; double c; bool d;};int ma原创 2021-09-10 10:18:21 · 391 阅读 · 0 评论 -
【C/C++】关于函数调用传递实参
函数调用传递实参有三种:值传递、地址传递、引用传递。下面介绍在函数内部修改形参会同步修改实参的两种方法:地址传递和引用传递。#include<bits/stdc++.h>using namespace std;typedef struct{ int *elem;//为存储空间的基地址,故使用时需为其分配内存,如以下两个函数中所示,若写为elem[20]数组形...原创 2019-09-22 13:20:00 · 734 阅读 · 0 评论 -
【C/C++】关于strstr函数和c_str()函数
strstr(T,S) 函数:这是一个字符串处理函数,用于判断字符串S是否是字符串T的子串。如果是,则该函数返回S在T中首次出现的地址;否则,返回NULL。头文件:#include <string.h>函数原型:char *strstr(const char *str1, const char *str2);返回值:(1) 成功找到,返回在父串中第一次出现的...原创 2019-10-06 10:55:00 · 632 阅读 · 0 评论 -
【C++】next_permutation / prev_permutation函数
关于next_permutation函数next_permutation和prev_permutation函数都是C++STL中的全排列函数。函数原型:#include < algorithm >bool next_permutation(iterator start,iterator end)bool prev_permutation(iterator start,iter...原创 2020-02-08 15:34:19 · 278 阅读 · 0 评论 -
【C++】string::find函数
int vis=a.find(b):从string a开头开始查找第一个遇到的string b,返回string a中所匹配字符串的第一个字符的下标位置,找不到则返回-1.int vis=a.find_first_of(b):从string a开头开始查找第一个遇到的string b中所含有的任意一个字符,返回其在string a中的下标位置,找不到则返回-1。int vis=a...原创 2019-08-08 22:47:00 · 285 阅读 · 0 评论 -
【C++】string::substr函数
形式:s.substr(p, n)返回一个string,包含字符串s中从p开始的n个字符的拷贝(p的默认值是0,n的默认值是s.size() - p,即不加参数会默认拷贝整个s) 1 int main() 2 { 3 string a; 4 string s("123456789"); 5 6 a = s.substr(0...原创 2019-08-08 23:08:00 · 202 阅读 · 0 评论 -
【C/C++】随机数的生成
C/C++:rand()函数rand()函数的头文件:#include<stdlib.h>该函数产生的随机数随机性差,速度慢,周期小(0-32767)用法如下所示: 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<time.h> 4 int main()...原创 2019-08-03 00:52:00 · 933 阅读 · 0 评论 -
fill和memset 数组填充跟数组初始化
一般我们在使用memset来初始化数组,但是昨天在做一道题时,死活出错,原因在于我想把一个int数组初始化为最大整型数,下面是memset函数原型void *memset(void *s, int ch, size_t n)功能是:(直接从百度百科抄过来)将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值, 第一个值为指定的内存地址,块的大小由第三个参数指定,这个...原创 2019-05-01 15:23:31 · 510 阅读 · 0 评论 -
二分查找算法及其STL库函数(基于有序数组)
#include&amp;lt;bits/stdc++.h&amp;gt;using namespace std;int main(){ int M,a[200005],n,x,i; scanf(&quot;%d&quot;,&amp;amp;M); for(i=0;i&amp;lt;M;i++) { scanf(&quot;%d&am原创 2019-05-01 15:28:56 · 882 阅读 · 0 评论 -
结构体struct及类型别名typedef的使用
一、结构体的创建在C语言中,实现数据结构的一种常用方法便是使用结构体(structure)其示例代码如下:struct stu {int num;char ch;};struct表示创建结构体 stu为结构体名称,里面的内容是各种变量类型(可以嵌套struct),然后使用示例如下:struct stu s;scanf("%d", &amp;s.num);printf("%d\n"...转载 2019-05-01 15:24:11 · 4134 阅读 · 0 评论 -
关于C中指针的引用,解引用与脱去解引用
*,&amp;amp; 在指针操作中的意义(1)*大家都知道在写int *p 时,可以声明一个指针。很少人知道在C/C++中还有一个名字就是“解引用”。他的意思就是解释引用,说的通俗一点就是,直接去寻找指针所指的地址里面的内容,此内容可以是任何数据类型,当然也可以是指针(这就是双重指针,后面将会讨论)。需要注意的是,在变量声明的时候,*不能当做解引用使用,只是表示你声明的变量是一个指针类型。exam...转载 2019-02-19 21:06:12 · 4239 阅读 · 0 评论 -
关于空指针NULL、野指针、通用指针
文章原链接:关于空指针NULL、野指针、通用指针 前言:&amp;nbsp; &amp;nbsp; &amp;nbsp; 一直对动态开辟内存这块知识点有缺漏,尤其是有关空指针,野指针的理解,做题的时候明显感觉不是很清楚。在博客园上看到了一篇文章,对这块内容作了详细介绍,个人感觉很通俗易懂,转载过来也分享给大家=======================...转载 2019-02-19 20:22:46 · 369 阅读 · 0 评论 -
关于指针
让我们来 看一下以下的代码int a=10;int b=20;int *p= &a;*p=10;p=&b;*p=200;p=&a;int **pp=&p;*pp=&a;**pp=1000;*pp=&b;**pp=2000;看到这样的代码是不是一脸的懵逼,现在让我们来看看他的每一句都是什么意思。开始之前我们先了解一下指针和解...转载 2019-02-19 20:05:45 · 247 阅读 · 0 评论 -
C语言 整数与字符串的相互转换
原链接:C语言 整数与字符串的相互转换 C语言 整数与字符串的相互转换一、简述 C语言中整数与字符串的相互转换,有广泛应用的拓展函数(非标准库),也可以自己尝试简单的实现。二、整数转字符串 &n...转载 2019-05-12 16:43:19 · 2599 阅读 · 0 评论 -
【C/C++】关于_int128
C/C++有__int128这种神奇的大整数类型,但只能在Linux环境下能够使用(基于windows的oj和win下的IDE编译器都不能编译运行)__int128不支持cin,cout,scanf,printf对其定义的变量的输入输出,需自己另写输入输出函数。模板如下:模板一:#include <bits/stdc++.h>using namespace std;inli...原创 2019-07-18 23:07:45 · 12275 阅读 · 0 评论 -
STL的sort排序
sort排序:///#include&amp;amp;lt;bits/stdc++.h&amp;amp;gt;///万能文件头#include&amp;amp;lt;stdio.h&amp;amp;gt;///#include &amp;amp;lt;iostream&amp;amp;gt;///用greater需要这个文件头#include&amp;amp;lt;algorithm&a原创 2019-05-01 15:21:31 · 406 阅读 · 0 评论 -
C++ STL算法系列count函数
原创链接:C++ STL算法系列count函数count和count_if函数是计数函数,先来看一下count函数:count函数的功能是:统计容器中等于value元素的个数。先看一下函数的参数:count(first,last,value); first是容器的首迭代器,last是容器的末迭代器,value是询问的元素。可能我说的不太详细,来看一个例题:给你n个数字(n<=1000),...转载 2019-05-01 21:12:21 · 1509 阅读 · 0 评论 -
reverse()函数反转字符串以及任意类型数组
原链接:reverse()函数反转字符串以及任意类型数组 文章目录reverse用法1.reverse函数反转string2.reverse函数反转字符数组2.自定义reverse函数反转任意类型数组例子:reverse用法1.reverse函数反转string#include <i...转载 2019-04-15 00:13:07 · 1337 阅读 · 0 评论 -
内存存放位置
一个由C/C++编译的程序占用的内存分为以下几个部分:1、栈区(stack) 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。3、全局区(静态区)(static),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和...转载 2019-02-20 01:02:45 · 376 阅读 · 0 评论 -
动态分配内存(malloc,calloc,realloc以及free)
- 动态数组的构建///一维动态数组的构建:#include&amp;amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;amp;gt;///#include&amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;gt;///#include&amp;amp;amp;amp;lt;malloc.h&amp;amp;amp;amp;gt;in原创 2019-05-01 15:11:54 · 371 阅读 · 0 评论 -
int 数组赋值给int数组以及C++memcpy函数的使用
标准规则下禁止这样做,不过有三个实现方法。1.结构体struct array{int data[20];};struct array b = {{1,2,3}};struct array a = b;2.内存复制#include&lt;string.h&gt;int a[20],b[20];memcpy(a,b,sizeof(a));//令a数组等于b数组3.逐个赋值。...转载 2019-05-01 15:14:04 · 6691 阅读 · 0 评论 -
C++STL队列以及优先队列小结
- 队列一、队列的定义:是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队。因为队列只允许在一端插入,在另一端删除,所以只有最早进入队列的元...转载 2019-05-01 15:10:57 · 1208 阅读 · 0 评论 -
swap交换结构
#include<stdio.h>struct chengji{ char name[6]; char number[12]; int x;};void swap(struct chengji *x,struct chengji *y){ struct chengji qq; qq=*x; *x=*y; *y=qq;}...原创 2019-03-13 16:34:45 · 792 阅读 · 1 评论 -
关于ios::sync_with_stdio(false) 提速cin和cout
ios::sync_with_stdio(false);C++中,cin和cout要与stdio同步,中间会有一个缓冲,所以导致cin,cout语句输入输出缓慢,这时就可以用这个语句,取消cin,cout与stdio的同步,说白了就是提速,效率基本与scanf和printf一致。然后就可放心的使用cin,cout了。(不过实际上使用了using namespace std;之后就可以直接打i...转载 2019-04-05 11:19:09 · 870 阅读 · 0 评论 -
【C++】STL容器
先放个链接:【C++】STL常用容器总结之九:集合set原创 2019-04-11 15:43:27 · 284 阅读 · 0 评论 -
【C++】结构体运算符重载
先放个链接:【C++】STL常用容器总结之八:映射map原创 2019-04-11 15:46:28 · 2623 阅读 · 1 评论 -
C++ string
先放个链接,待以后总结:【C++】STL常用容器总结之十二:string类原创 2019-04-11 15:48:28 · 837 阅读 · 0 评论 -
指针数组
1.定义:在C语言和C++语言中,数组元素全为指针的数组称为指针数组。一维指针数组的定义形式为:“类型名 *数组标识符[数组长度]”。例如,一个一维指针数组的定义:int *ptr_array[10]。与数组指针关系(对比):数组指针是指向数组首元素的地址的指针,其本质为指针(这个指针存放的是数组首地址的地址,相当于2级指针,这个指针不可移动); 指针数组是数组元素为指针的数组,其本...原创 2019-05-01 15:18:46 · 6506 阅读 · 1 评论