- 博客(72)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 12.动态内存
智能指针shared_ptr,unique_tr,weak_ptr;make_shared函数最安全的使用内存的方式就是使用make_shared标准库函数。和智能指针一样,包含在memory头文件中。#include<iostream>#include<memory>#include<vector>using namespace std;int main(){ shared_ptr<int>p = make_shared<int&g
2021-03-23 00:04:22
79
原创 10、泛型算法
这个应该在使用中学习,这里只会记录一些注意事项。算法不会检查写操作的合法性使用C++中的lambda表达式谓词谓词是一个可以调用的表达式,返回结果是一个能用于条件的值。标准库算法使用的谓词分为一元谓词(接受单一参数,fill)和二元谓词(拥有两个参数,sort)lambda表达式lambda表达式可以看作未命名的内联函数。它具有以下形式[capture list] (parameter list) -> return type{ function body}lam
2021-03-23 00:02:59
86
原创 8.IO类
IO对象IO对象不能拷贝或者赋值,因此也不能将形参或者返回类型设为流类型通常使用引用传递或者返回流对象。流的错误状态管理输出缓冲导致缓冲刷新的原因程序结束缓冲区满操纵符endl,flush等使用unitbuf、nounitbuf设置流的内部状态。cerr设置为unitbuf,所以所有输出操作都会立即刷新缓冲区。一个输出流可能关联到另一个流,当读写到被关联的流时,会刷新缓冲区。默认情况下cin,cerr都关联到cout,当使用cin读入,或者cerr输出是,都会导致cout缓冲区刷新
2021-03-23 00:00:37
78
原创 6.C++基础:函数
函数基础函数体,形参和实参(实参是形参的初始值 );形参列表;返回类型。局部对象自动对象。定义的变量属于此类局部静态对象。通过static定义的变量。在程序执行过程中一直有效。,知道程序结束才会被销毁。分离式编译参数传递传值参数通过拷贝变量,或者指针来访问。传引用尽量使用传引用来避免拷贝。const与参数实际就是const的使用,底层const和顶层const在参数传递的时候会忽略顶层const。就是说可以使用一个变量来初始化一个常量形参。数组参数下面三
2021-03-22 23:58:56
107
原创 5.C++基础:语句
迭代语句(循环)for;for();,while;do-while条件语句if-else ;switch跳转语句break;continue;return ;goto;goto是无条件跳转。所以很容易引起错误,不建议使用。try语句块和异常处理 int a, b; cin >> a >> b; try { if (b == 0)throw runtime_error("division by zero"); int c = a / b;
2021-03-22 23:58:03
69
原创 4. C++基础:表达式
运算符运算类型转换类型提升重载运算符。。。左值和右值等号两边的对象优先级和结合律运算符的优先级和运算顺序(左结合律)求值顺序对于未制定求值顺序的表达式,求值的时候产生的行为是未定义的。cout << i << " " << i++ <<endl;cout中没有定义如何对运算对象求值,所以是未定义的,最终结果取决于编译环境。4种明确了运算对象求值顺序的运算符&&||?:,运算对象的求
2021-03-22 19:45:12
211
原创 3.C++基础:字符串、向量、数组
string类直接初始化和拷贝初始化string s1 = "hallo";//拷贝string s2("hiya");//直接string s3(10,'o');//直接+string的读写使用IO操作符读取string对象string s;cin >> s;cout << s << endl;string对象会自动忽略开头空白,读到下一处空白为止。如果输入hello world,那么只会输出hello。使用getline读入string如
2021-03-22 19:43:53
108
原创 2.C++基础:变量和基本数据类型
换行符和回车符\n表示换行符,将光标移动到下一行行首,/r表示回车符,将光标移动到本行行首。声明与定义变量声明规定了变量的类型和名字,而定义还要申请空间,或许为变量赋初值。使用extern将变量申明和定义分开。extern int j任何显式初始化的声明都将成为定义,覆盖extern的作用。多文件使用同一个变量,就必须声明和定义分开,在一个文件定义,而在多个文件声明。变量只能被定义一次。变量命名C++标准库保留字。用户定义的标识符不能以两个下划线开头,也不能以下划线加大写字母开头
2021-03-22 19:42:47
80
原创 第10~13章:类基础
将类定义在头文件之中,而将类方法的具体实现放在源文件中。在函数实现中通过作用域运算符::表明所属类。class Stock{private: int n; void show(int s); ...}void Stock::show(int s){ ...}定义位于类声明中的函数自动成为内联函数,在类外面的函数也可以使永inline成为内联函数。构造函数与析构函数构造函数无返回值,函数名必须和类名保持一致。为构造函数提供重载版本,或者提供默.
2021-03-11 21:57:42
190
原创 第9章:内存与命名空间
include<>编译器会在存储标准头文件的文件系统查找,include""编译器会首先查找当前工作目录或者源文件目录。register在C++11中不在具有将变量放入寄存器的作用,但依然还可以使用。定义在函数外面的变量为静态变量,而使用static修饰,那么只能在当前文件使用,不能链接到其他文件。int global = 10;//在所有文件都可以使用//如果其他文件要使用这个变量,要使用extern关键词// extern int global;static int one.
2021-03-09 14:45:15
167
2
原创 第7~8章:函数
用const修饰指针的两种情况:int age = 29;const int *p = &age;//不能通过指针改变age的值,//但可以改变p所指向的地址,//或者通过age改变变量的值。int sage = 10;int *const p = &sage;//p只能指向sage;遵行从右往左读的逻辑规则。cost int * const p = & x;//指向const对象的const指针。函数指针。如果一个函数不提供参数表,那么他就表.
2021-03-09 14:43:34
101
原创 第5~6章:关系表达式与语句
在所有运算符中括号()运算级最高,,运算及最低。int a = 10, 20;//等价于 (int a = 10), 20;C++将C风格的字符串视为地址。例如,比较下面:string ss = "haha";if(ss == "haha") cout << "impossible";else cout << "oooo";//程序会输出 "ooo"因为比较的是地址,两个不同对象地址一定不同。应该使用strcmp进行比较,wchar_t使.
2021-03-09 14:42:22
147
原创 1~4章:数据类型
wchar_t,char16_t,char32_t的应用C++的禁止narrowing(缩窄转换)cin.get(),getline(,)union共用体.union ha{ int a; double b; long long c}//只能同时使用其中一种类型。C++中raw字符串和Python类似,通过R"()“这样的格式使得()内的字符串不转码。也可以通过”+ *()+ *"使得括号内支持在括号内使用).申明一个指针并未分配内存,使用new或者mall.
2021-03-09 14:41:20
134
原创 vscode中setting设置
{ "files.defaultLanguage": "c++", // ctrl+N新建文件后默认的语言 "editor.formatOnType": true, // 输入分号(C/C++的语句结束标识)后自动格式化当前这一行的代码 "editor.suggest.snippetsPreventQuickSuggestions": false, // clangd的snippets有很多的跳转点,不用这个就必须手动触发Intellisense了 "editor.acce
2021-01-03 16:59:47
4448
原创 vscodelaunch.json和tasks.son设置
Launch设置// https://code.visualstudio.com/docs/cpp/launch-json-reference{ "version": "0.2.0", "configurations": [{ "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示 "type": "cppdbg", // 配置类型,cppdbg对应cpptools提供的调试功能;可以认为此处只能是cppdbg
2020-12-19 11:51:31
430
1
原创 vscode中setting的设置
{ "files.defaultLanguage": "c++", // ctrl+N新建文件后默认的语言 "editor.formatOnType": true, // 输入分号(C/C++的语句结束标识)后自动格式化当前这一行的代码 "editor.suggest.snippetsPreventQuickSuggestions": false, // clangd的snippets有很多的跳转点,不用这个就必须手动触发Intellisense了 "editor.acce
2020-12-19 11:47:54
3516
2
原创 const用法总结
立个flag:不定期更新修饰变量,表示修饰的变量为常量。const int a=3;//必须初始化。const double ans=0.00001;其实这个还有顶层const和顶层const,(详情见C++primer)修饰函数int getmax(int a,int b)const{}这个就表示在这个函数内部不会修稿任何变量的值。(仅是个人理解)const int getans(...)这个表示返回的是一个常量(右值)。个人感觉没啥区别(水平太低)给自己的一些
2020-11-24 19:16:34
118
原创 vscode文件路径中不能包含中文字体
vscode,codeblocks打开文件路径中如果含有中文字体,很有可能就难以编译所以以后命名文件的时候尽量还是按照驼峰规则来吧。。。。
2020-11-19 22:14:16
3057
原创 printf用法
printf("%x", num) //输出num的16进制数printf("%o", num) //输出num的8进制数%lf 默认是8保留8位小数%uc++标准库函数
2020-11-16 15:29:27
145
原创 devc++,codeblock支持c++11
DevC++在编译器设置中加入-std=c++11最好将代码警告中设置为显示最多警告信息。vscode在.vscode文件中找到tasks.json,在加入同样的命令,也可以加入“-wall”启动代码警告。再次之前要保证mingw是支持c++11。mingw官网...
2020-11-14 21:48:16
396
原创 找出出现偶数次中两个奇数频率的数,空间O(1)
本题时间O(n),空间O(1);Problem Description有一行n个数,其中所有数都恰好出现了两次,除了两个特殊的数只出现了一次。现在Quasrain想知道这两个特殊的数分别是多少Input 多组数据。第一行一个整数T表示数据组数(T<=5)对于每组数据,第一行一个整数n,意义如题面所示(保证n为偶数,n<=1000000)接下来一行n个正整数Ai。(0<=Ai<2^31-1)Output 对于每组数据,输出一行两个正整数,表示两个特殊的数,请按从小到大.
2020-10-31 09:48:25
186
原创 堆排序
堆排序就是利用堆的性质实现的一种排序,1.根节点的值总是大于(或者小于)左右儿子的值2.基于二叉树,i节点的左右儿子可以用i<<1,与i<<1|1,表示 首先将数组构造成为一个大根堆,每次将根节点与当前末尾节点交换,然后从根节点开始更新,不断重复这个操作,直到所有的数都被取出#include<bits/stdc++.h>using namespace std;int shu[1000009];void fread(int &k){ in
2020-10-28 18:08:27
120
原创 sparse table
# sparse table 求解RMQ问题 来道水题文章目录预处理:查询:在每天挤奶的时候,农民约翰的N头牛(1≤n≤50000)总是排成一列有一天,约翰决定与他的牛们一起玩一个极限飞盘游戏。为了简单起见他将从奶牛队列里面选一定范围内的奶牛来玩这个游戏。然而所有的牛对这个游戏都很感兴趣。农民约翰列出了Q份名单(1≤Q≤200000)和每个奶牛的高度(1≤高度≤1000000)。对于每一份名单,他想你帮助他确定在每份名单中高度最高的奶牛与高度最低的奶牛的高度差是多少。Input第一行为N(
2020-10-27 23:00:31
985
3
原创 分块
区间极大值 • 有一个长度为n的整数数列a。 现在有m个操作,操作的格式有两种: • 1 x y,表示修改,将数列第x个数a[x]改为a[x]+y;• 2 x y, 表示询问,询问第x个数到第y个数间,最大的一个数是多少。•1<=n<=100000 1<=m<=100000大佬们一看线段树裸题呀,但是分块更暴力,更直接,更好写!贴代码#include<bits/stdc++.h>using namespace std;int n,m,S;int bl.
2020-10-27 20:49:58
142
原创 二分快速幂
二分快速幂计算a^b %c,当b很大的时候,就可以用二分将时间复杂度由O(n)降到O(logn)#include<bits/stdc++.h>using namespace std;int Montgomery(int a,int b,int c){ int ans=1; while(b) { if(b&1)ans=ans*a%c; ans=ans*ans%c; b=b>>1; } return ans;}int main(){ in.
2020-10-27 09:50:01
158
原创 Tire字典树
Tire 字典树你考入大城市沙坪坝的学校,但是沙坪坝的当地人说着一种很难懂的方言,你完全听不懂。幸好你手中有本字典可以帮你。现在你有若干个听不懂的方言需要查询字典。 输入格式:若干行表示字典的内容,每行表示一条字典的记录。每条记录包含两个空格间隔的单词,第一个单词为英文单词,第二个单词为对应的沙坪坝方言。记录条数<=100,000 接下来是一个空行,接下来又有若干每行一个单词,表示你要查询的沙坪坝方言。单词个数<=100,000 输出格式:输出若干行,每行一个英文单词,表示翻译后的结果
2020-10-26 18:06:00
127
原创 Manacher计算回文子串
Manacher算法题目描述 给出一个只由小写英文字符组成的字符串 SS ,求 SS 中最长回文串的长度 。字符串长度为 nn输入格式 一行小写英文字符 a,b,c,…y,z 组成的字符串 SS。输出格式 一个整数表示答案。输入输出样例 输入 #1 aaa输出 #1 3求最长回文子串的传统思路是,遍历每一个字符,以该字符为中心向两边暴力查找。其时间复杂度为O(n2),效率很低。1975年,一个叫Manacher的人发明了一个算法,Manacher算法(俗称:马拉车算法),该算法可以把算法
2020-10-26 17:48:58
168
原创 康拓展开
康拓展开先上一道例题eg.1 八数码问题题目描述在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变。input 输入初始状态,一行九个数字,空格用0表示输出格式 只有一行,该行只有一个数字,表示从初始状态到目标状态需要的最少移动次数(测试数据中无特
2020-10-26 17:21:29
147
原创 垃圾堆
魔法少女Clara一直以来作为学园偶像活跃在各个舞台上,然而岁月不饶人,魔法少女Clara年老体衰,并且受到了来自东方的神秘力量的影响,已经无力再继续完成所有的偶像事业。所以她决定,培养一批新生代魔法少女,继承学园偶像的伟大事业!于是魔法少女Clara找来了一批魔法少女,并将能够延续生命的魔法传授给她们。然而每位魔法少女都有各自的实力值,且同时传授技能给实力值相差过大的魔法少女们是一件非常累的事情,所以魔法少女Clara找到了她的学生:魔法少女HCG,希望魔法少女HCG帮助她管理这些魔法少女们的信息。由
2020-10-25 21:25:16
139
转载 codeblock代码格式化
codeblock代码格式化在代码框里点右键,按Format use Astyle就会自动代码格式化了但是它默认的风格是大括号另起一行,很不习惯,实际上是可以改的1.Setting->Editor->Source Formatter->style->Bracket style 修改成Java2.Setting->Editor->Source Formatter->Formatting->Insert space padding around oper
2020-10-25 21:13:39
1101
原创 hit dp
dp魔法少女Clara非常仰慕又可爱又是BZOJ的Rank1又可爱有WorldFinalRank20又可爱又Regional出题人又可爱又能n2过百万又可爱的魔法扶扶Claris,所以希望能够通过训练变得像魔法扶扶Claris一样强。由于魔法少女Clara非常懒,所以她找到姚主席寻求帮助。姚主席在接下来的n天中,每天都准备了一套题目用于训练,第i天的题目难度为Ci。魔法少女Clara希望在其中选择至多m天陪姚主席训练(因为其他的时间,她要用来收集退环境的骷髅牌,炸鱼,和无头学姐立下flag,摔跤健身,释放
2020-10-25 18:09:49
127
哈工大高级算法、组合优化作业、实验、PPT和书籍
2024-07-18
Learning Efficient Convolutional Networks via Network Slimming
2022-01-20
Python使用docx新建的文件全是兼容模式,打开的字符格式全是乱码怎么办呀?
2021-04-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅