C/C++
Allennnn_
一个初学者的艰难旅程
展开
-
[2015.8.1]C++学习总结
1。Sleep()函数可以暂停程序,括号里面填1000=1秒注意:Sleep函数的头文件是#include ,而且S要大写2。内联函数: //内联函数:提高程序运行效率,但会增加程序的体积#include using namespace std;inline int print();//内联函数的声明int print(){return 1;}//函数的定义原创 2015-08-01 17:21:23 · 336 阅读 · 0 评论 -
C++ STL
vector头文件:#include<vector> 定义:vector<char>src;vector<int>num; 使用:向普通数组那样通过[ ] 来使用。例如 num[1]、src[2] 操作方法:vectorName . back() 返回最末一个元素vectorName . pop_back() ...原创 2016-12-06 14:25:25 · 278 阅读 · 0 评论 -
十六进制转八进制(代码)
/*十六 -> 1位十六进制变 4 位二进制 -> 3位二进制变 1 位八进制 (从后往前,前面不够3位就补零) (5B89)16 = (0101 1011 1000 1001)2 = (000 101 101 110 001 001)2 = (055611)8 = (55611)8*//*1.把16进制字符串分割 2.把每位 16进制 转化成 2 进制3.从后开始数原创 2016-12-09 00:50:03 · 1290 阅读 · 0 评论 -
用next_permutation方法(常用语全排列)
//stl的next_permutation方法 #include #include //包含了next_permutation() using namespace std; int main() { int n,p[100]; cin>>n; int i; for (i=0;i<n;i++) cin>>p[原创 2016-12-09 00:52:15 · 423 阅读 · 0 评论 -
数字分割(拆数字)的两种方法
最近做了下蓝桥杯的初赛训练题,发现经常需要用到数字分割(例如把一个数字1234拆成1,2,3,4)所以总结了两种常用的拆分数字的方法:一个是while循环方法,一个是递归方法//数字分割,while循环方法 #include using namespace std;int main(){ int a,i=-1; int num[20]; cin>>a; while (a/1原创 2017-03-23 10:44:52 · 14226 阅读 · 0 评论 -
小数的处理
题目:如果x的x次幂结果为10(参见【图1.png】),你能计算出x的近似值吗?显然,这个值是介于2和3之间的一个数字。请把x的值计算到小数后6位(四舍五入),并填写这个小数值。注意:只填写一个小数,不要写任何多余的符号或说明。2.506184代码:#include #include #include using原创 2017-03-22 15:42:51 · 766 阅读 · 0 评论 -
位运算
C语言提供的位运算符列表:运算符 含义 描述& 按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0| 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1^ 按位异或 若参加运算的两个二进制位值相同则为0,否则为1~ 取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0>> 右移 将一个数的各二进制位右移N位,移到右端的低位被舍原创 2017-03-23 13:26:21 · 258 阅读 · 0 评论 -
dfs总结
最近在做学校出的蓝桥杯的初赛试题,发现很多题都可以用dfs暴力解决。本文将总结一下dfs常用的两种题型,最后根据这两种题型总结出一个dfs的模版。(下面注释中带“**”的注释是重点语句)①dfs解决全排列问题。典型题目:用数字 1~5进行全排列,显示出每一种情况并计算出总共有多少种情况。#include using namespace std;const int n = 5;原创 2017-04-05 17:56:43 · 464 阅读 · 0 评论 -
堆排序
#include using namespace std;void maxHeapify(int *a,int i,int size) //调整成最大堆堆 { int lchild=2*i; //i的左孩子节点序号 int rchild=2*i+1; //i的右孩子节点序号 int max=i; //临时变量原创 2017-10-16 19:21:50 · 281 阅读 · 0 评论 -
C++ STL自带的排序sort()
#include #include using namespace std;bool cmp(int a, int b){ return a > b;}int main(){ int a[5] = {3, 1, 4, 5, 2}; int b[5] = {3, 1, 4, 5, 2}; // sort()默认是从小到大。 sort(a, a+5); for (原创 2017-12-09 00:26:37 · 595 阅读 · 0 评论 -
素数筛
// 素数筛/* 原理 :开一个标记数组,全部初始化为 true,0、1不是素数,直接从数组里划掉。 紧跟着在 0、1后面的【最小的素数】是 2。 从2开始,凡是2的倍数、且小于100000的,全部标记为false。 再找2以后的、是【素数】的下一位数,是3 从3开始,凡是3的倍数、且小于100000的,全部标记为false。 再找3以后的、是【素数】的下一位数,是5 从5开始,凡原创 2018-03-31 21:56:36 · 220 阅读 · 0 评论 -
二叉树的创建与遍历
#include #include using namespace std;struct BiTNode{ char data; struct BiTNode *lchild, *rchild;//左右孩子 }; BiTNode *T; //指向结构体(节点)的指针void CreateBiTree(BiTNode* &T);void PreOrder(B原创 2016-09-11 01:00:16 · 302 阅读 · 0 评论 -
链表实现
/*指针知识复习: int *p = new int; //此时指针p指向一个int对象,该对象没有被初始化 int *p = new int(0); //指针p指向一个int对象,该对象被初始化为0int *p = new int[10]; //指针p指向一个int型数组,该数组未被初始化int *p = new int[10](0); //指针p指向一个int型数组,该数组的元素都原创 2016-09-11 00:59:24 · 279 阅读 · 0 评论 -
Dijkstra最短路
/*算法关键代码: for (i=1;i<=n-1;i++) { min = inf; for (j=1;j<=n;j++) if (book[j]==0 && dis[j]<min) { min = dis[j]; u = j; } book[u] = 1; for (v=1;v<=n;v++) if (e[u][v] <原创 2016-09-11 00:58:27 · 305 阅读 · 0 评论 -
[2015.8.2]C++学习总结
1。const成员函数#include using namespace std;class A{public:void func(int x,int y){i=x;j=y;} //不能在这个成员函数前加const,因为这个成员函数中要做改变i和j的操作,即改变了成员中的值,因此若加const会报错void print()const {coutprivate:in原创 2015-08-02 19:04:27 · 318 阅读 · 0 评论 -
[2015.8.5]C++学习总结
【1】宏定义:(简单说句就是用其他的名字来代表一些可能会重复出现,或是繁琐的东西)无参宏定义:无参宏定义的一般形式为:#define 标识符 字符串其中的“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令。“define”为宏定义命令。“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。例如: #define M (a+b) 它的作用是指定标识符M来代替表原创 2015-08-05 18:16:40 · 291 阅读 · 0 评论 -
[2015.8.6]C++学习总结
唉今天顾着聊天,没怎么学编程,就只做了一个小小个计算器,(还没做到高精度。。),当作用来复习一下函数,switch,和do-while语句吧。//小型计算机1.0#include using namespace std;int plus(int x,int y){coutreturn 1;}int minus(int x,int y) {cout原创 2015-08-06 17:40:39 · 360 阅读 · 0 评论 -
C++中的typedef
做题中,遇typedef,不懂,百度之。基本解释typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。用法总结如何创建平台无关原创 2015-12-20 21:09:33 · 355 阅读 · 0 评论 -
C++中的pair
做题中,遇pair,不懂,百度之。从他人中得答案:http://blog.csdn.net/xywlpo/article/details/6458867点击打开链接http://www.cnblogs.com/cszlg/archive/2013/03/10/2952807.html点击打开链接Pair类型概述pair是一种模板类型,其中包含两个数据值,两个数据的类型可原创 2015-12-20 21:28:16 · 453 阅读 · 0 评论 -
C++ string 字符串函数详解
此文转自:https://www.renfei.org/blog/introduction-to-cpp-string.html运算符重载+ 和 +=:连接字符串=:字符串赋值>、>=、==、!=:比较字符串>:输出、输入字符串注意:使用重载的运算符 + 时,必须保证前两个操作数至少有一个为 string 类型。例如,下面的写法是不合法的:#include #in转载 2016-01-24 22:23:00 · 299 阅读 · 0 评论 -
__int64
VCVC6.0的64位整数分别叫做__int64与unsigned __int64,其范围分别是[-2^63, 2^63)与[0,2^64),即-9223372036854775808~9223372036854775807(10^19)与0~18446744073709551615(约1800亿亿)(10^20)。对64位整数的运算与32位整数基本相同,都支持四则运算与位运算等。当进行64位与3转载 2016-01-24 22:31:22 · 507 阅读 · 0 评论 -
string类数组的输入
#include #include using namespace std;int main(){ string s[101]; int n; cin>>n; char ch=cin.get(); //这里需要一个来接收enter,不然这个回车键就是s[0]的内容 for (i=0;i<n;i++) getline(cin,s[i]);//string类数组的输入方法,可原创 2016-03-16 21:56:51 · 3098 阅读 · 2 评论 -
文件输入输出
//重定向版#include using namespace std;int main(){ freopen("input.in","r",stdin);//必写 freopen("output.out","w",stdout);//必写 int a; cin>>a; cout<<a<<endl; cout<<"hello world,hello new york!"; re原创 2016-03-18 15:56:04 · 320 阅读 · 0 评论 -
memset的基本用法
#include #include //memset的头文件 using namespace std;int main(){ int a[10][10]; memset(a,-1,sizeof(a));//memset可以用来初始化数组,这里把二位数组a[][]初始化为了-1 int i,j; for (i=0;i<10;i++) { for (j=0;j<10;j++)原创 2016-03-19 11:24:42 · 318 阅读 · 0 评论 -
POJ2488 A Knight's Journey(DFS)
/*1. dfs2. typedef typedef 类型 别名; 3. pair 【pair的定义】: 例子1:pair 变量名; 例子2(结合typedef): typedef pair POS; POS po; 【pair类型的引用】: 变量名.first = ...; 变量名.second = ...; 【pair的字面量形式】:原创 2018-03-26 22:01:49 · 232 阅读 · 0 评论