C/C++
C/C++
H4ppyD0g
中科院某研究所在读学生,主要方向为云计算/云原生安全,博客记录平时学习过程中的笔记,不免参考各种文章资料(如有侵权请联系删除),也会存在一些知识误区,欢迎师傅们指正。付费专栏和资源都是花费长时间整理的,收费仅作为整理资料的劳动收获,如果原作者认为侵权也请联系删除。
展开
-
C语言的新奇玩法| 函数里套宏定义
看好多开源代码里都用到了宏定义的函数编程,这里写个demo体验一下。原创 2022-10-25 18:52:44 · 375 阅读 · 0 评论 -
重定向输入输出freopen,文件流fstream
函数名:freopen声明:FILE *freopen( const char *path, const char *mode, FILE *stream );参数说明:path: 文件名,用于存储输入输出的自定义文件名。mode: 文件打开的模式。和fopen中的模式(如r-只读, w-写)相同。stream: 一个文件,通常使用标准流文件。返回值:成功,则返回一个path所指定文...原创 2019-04-19 18:04:18 · 648 阅读 · 0 评论 -
algorithm常用函数
stable_sort()稳定排序算法,相同值不改变位置#include <iostream>#include <algorithm>using namespace std;int a[5]={3,5,4,2,6};int main(){ stable_sort(a, a+5);//前闭后开区间 for (int i=0; i<5; i++) ...原创 2019-06-01 19:05:56 · 1225 阅读 · 0 评论 -
string.find、char[]、cin.getline
若查找成功,返回按查找规则找到的第一个字符或子串的位置;若查找失败,返回npos,即-1(打印出来为4294967295)。#include <iostream>#include <string>#include <algorithm>using namespace std;string str;int main(){ str="hello w...原创 2019-06-01 19:26:58 · 511 阅读 · 0 评论 -
函数指针
声明一个函数类型typedef void (mytypefunc)(int a, int b);定义一个函数指针,这个指针指向函数的入口地址mytypefunc *myfuncp=NULL;声明一个函数指针类型typedef void (*myfuncp)(int a, int b);通过函数指针类型定义一个函数指针myfuncp fp=NULL;定义一个函数指针变量void (*func_var)(int a, int b); 函数指针(1)函数名就是函数的指针(2)用原创 2020-11-12 12:46:57 · 193 阅读 · 0 评论 -
C++ stl汇总
vectorhttps://blog.csdn.net/weixin_42172261/article/details/86604772maphttps://blog.csdn.net/weixin_42172261/article/details/86621807sethttps://blog.csdn.net/weixin_42172261/article/details/866...原创 2020-01-17 19:35:29 · 294 阅读 · 0 评论 -
windows编程浅尝辄止 命令行调用exe
老师让拓宽知识面,所以就有了这篇博客。ps : 只看个hello world就已经晕乎了。#include <Windows.h>//main()是控制台应用程序的入口函数//WinMain()是win32窗口应用程序的入口函数//HINSTANCE hInstance-->应用程序当前实例句柄//HINSTANCE hPreInstance-->应用程序...原创 2019-12-02 16:34:04 · 370 阅读 · 0 评论 -
枚举类型enum解析
#include <stdio.h>#include <stdlib.h>//定义一个Counter类型.下面两种效果等价 typedef enum{one=1, two, three}Counter; //enum Counter{one=1, two, three};//枚举相当于给其中的变量进行 define 处理,可以进行比较等操作//只不过只可以是...原创 2019-11-20 16:12:07 · 253 阅读 · 0 评论 -
C语言变量定义和声明的区别
变量的声明有两种情况(1) 一种是分配内存空间的(声明)。例如:int a在声明的时候就已经分配了内存空间。(2) 另一种是不需要分配内存空间的(声明)。例如:extern int a其中变量a是在别的文件中定义的。第一种是"定义性声明",或者称为”定义",第二种是"引用性声明"。可以理解为声明中包含着定义,但是并非所有的声明都是定义,例如:int a既是声明,同时又是定义。然而对于ext...原创 2019-04-24 16:13:19 · 5136 阅读 · 0 评论 -
0x3f3f3f3f(无穷大数)
一般定义无穷大数都是inf=99999999,或者0x7f ff ff ff,但是有的时候inf过大,虽然保证了没有数超过它,但是在需要加上一个数的时候,inf+a可能会导致溢出,最终变成一个负数。而0x3f3f3f3f的数量级也1e9的,(一般题不会给超过1e9的数),在把它当成无穷大的时候,两个0x3f3f3f3f相加的结果也不会爆int。所以这个数比较合适了。并且如果开一个数组,让数组中...原创 2019-04-14 21:28:08 · 1109 阅读 · 0 评论 -
priority_queue:优先队列
#include<queue>模板声明带3个参数:priority_queue<Type, Container, Functional>,其中Type 为数据类型,Container为保存数据的容器,Functional 为元素比较方式。Container必须是用数组实现的容器,比如vector,qeque等等,但不能用 list。STL里面默认用的是vector。...原创 2019-03-31 09:52:22 · 337 阅读 · 0 评论 -
UVa 10935 Throwing cards away I(queue:队列)
Given is an ordered deck of n cards numbered 1 to n with card 1 at the top and card n at the bottom. The following operation is performed as long as there are at least two cards in the deck:Throw awa...原创 2019-03-31 09:24:22 · 215 阅读 · 0 评论 -
HDU 1847 愚人节的礼物(stack:栈)
四月一日快到了,Vayko想了个愚人的好办法——送礼物。嘿嘿,不要想的太好,这礼物可没那么简单,Vayko为了愚人,准备了一堆盒子,其中有一个盒子里面装了礼物。盒子里面可以再放零个或者多个盒子。假设放礼物的盒子里不再放其他盒子。用()表示一个盒子,B表示礼物,Vayko想让你帮她算出愚人指数,即最少需要拆多少个盒子才能拿到礼物。Input本题目包含多组测试,请处理到文件结束。每组测试包含一...原创 2019-03-31 09:02:34 · 295 阅读 · 0 评论 -
联合union的赋值机制
这个知识点出现在我的期末试卷上,由于当时对这个概念掌握的不清楚,3分没了。。找了很多其他的博客,这一方面的解释很少,所以在这里写一篇吧,可能自己解释的也不算清楚全面,所以请各位读者只是当做一个参考吧。我们都知道联合(也叫共用体)中的不同类型的变量都是放在同一个地址开始的内存单元里面,当然这个内存单元足够大以至于可以容下所占空间最大的那个数据类型。当给联合中的某一个数据类型赋值时,会改变其他数据类...原创 2019-01-10 16:15:08 · 8049 阅读 · 2 评论 -
UVA10815 Andy's First Dictionary(set:集合)
set:集合#include &amp;lt;set&amp;gt;set就是数学上的集合,每个元素最多只出现一次,并且默认将其中的元素从小到大排序,如果用一个for循环就可以直接输出从小到大的元素。set的一些操作:begin()--返回指向第一个元素的迭代器clear()--清除所有元素count()--返回某个值元素的个数empty()--如果集合为空,返回trueend()--返回指向最...原创 2019-01-23 11:50:36 · 247 阅读 · 0 评论 -
C++迭代器:iterator(入门)
什么是迭代器:迭代器是STL中的一个重要概念,它类似于C中的指针,但比指针更强大。指针可以通过++运算符对内存连续的一个数组进行遍历;而迭代器重载了*、-&gt;、++、==、!=、=运算符(对于不同的数据容器,分别进行了不同的重载,我们只需要从外部了解怎么用就好),在指针的基础上也可以对内存不连续的一个容器进行遍历。迭代器怎么用:由于各种容器中都有自己的迭代器,所以定义它的时候就需要用到各...原创 2019-01-23 10:51:58 · 651 阅读 · 0 评论 -
vector:不定长数组
vector:不定长数组#include <vector>用vector可以定义一个不定长的数组,它是一个模板类,所以在定义一个对象的时候需要说明对象的数据类型,比如vector<int> a:定义了一个int类型的a数组。 vector< string>a:定义了一个string类型的a数组,a数组中的每个元素都是一个string类。vector定义的...原创 2019-01-23 09:43:02 · 646 阅读 · 0 评论 -
CodeForces 2A Winner(map:映射)
map:映射#include &lt;map&gt;map是从键得到值的映射,由于重载了[ ]运算符,所以可以像数组取下标一样去使用它。在map中,数据是默认以键的从小到大来排序的(类似于集合)。如果要定义一个map,可以这样定义:map&lt;string, int&gt; a;map的一些操作:插入元素#include &lt;map&gt;map&lt;string, in原创 2019-01-24 10:27:51 · 233 阅读 · 0 评论