c/c++
文章平均质量分 52
叫我AC
不写注释就是耍流氓
展开
-
c++引用,什么时候函参必须使用引用?
在什么时候将函数的参数设为引用类型?当你在函数体里要改变参数的值时,就将函数参数类型声明为引用或者指针,这样函数体里对参数本身的操作才能生效。如:int beforeChange; void ChangeValue(int valueBeforeChanged) { //change value }原创 2017-08-09 10:21:43 · 955 阅读 · 0 评论 -
ACM之C++ STL库
全排列函数next_permutationSTL 中专门用于排列的函数(可以处理存在重复数据集的排列问题)头文件:#include <algorithm>using namespace std;调用: next_permutation(start, end);注意:函数要求输入的是一个升序排列的序列的头指针和尾指针.用法:// 数组int a[N];sort(a, a+N);next...转载 2018-04-19 20:27:15 · 1046 阅读 · 0 评论 -
STL MAP 排序
原文 http://blog.csdn.net/iicy266/article/details/11906189 map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value。假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行存储就是个不错的选择。 我们这样定义,map<string, int>...转载 2018-04-20 19:42:26 · 543 阅读 · 0 评论 -
STL(1)之双向队列(dequeue)
deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素,deque在接口上和vector非常相似,下面列出deque的常用成员函数: deque的实现比较复杂,内部会维护一个map(注意!不是STL中的map容器)即一小块连续的空间,该空间中每个元素都是指针,指向另一段(较大的)区域,这个区域称为缓冲区,缓冲区用来保存deque中的数据。因此deque在随机访问和遍历数...转载 2018-04-21 16:15:45 · 10742 阅读 · 0 评论 -
STL(2)之栈(stack)
栈(statck)这种数据结构在计算机中是相当出名的。栈中的数据是先进后出的(First In Last Out, FILO)。栈只有一个出口,允许新增元素(只能在栈顶上增加)、移出元素(只能移出栈顶元素)、取得栈顶元素等操作。在STL中,栈是以别的容器作为底部结构,再将接口改变,使之符合栈的特性就可以了。因此实现非常的方便。下面就给出栈的函数列表和VS2008中栈的源代码,在STL中栈一共就5个...转载 2018-04-21 16:20:25 · 227 阅读 · 0 评论 -
STL(3)之单项队列(queue)
queue单向队列与栈有点类似,一个是在同一端存取数据(栈),另一个是在一端存入数据,另一端取出数据。单向队列中的数据是先进先出(First In First Out,FIFO)。在STL中,单向队列也是以别的容器作为底部结构,再将接口改变,使之符合单向队列的特性就可以了。因此实现也是非常方便的。下面就给出单向队列的函数列表和VS2008中单向队列的源代码。单向队列一共6个常用函数(front()...转载 2018-04-21 16:33:16 · 266 阅读 · 0 评论 -
STL(4)之堆(heap)及各种排序效率比较
下面再介绍STL中与堆相关的4个函数——建立堆make_heap(),在堆中添加数据push_heap(),在堆中删除数据pop_heap()和堆排序sort_heap():头文件 #include <algorithm>下面的_First与_Last为可以随机访问的迭代器(指针),_Comp为比较函数(仿函数),其规则——如果函数的第一个参数小于第二个参数应返回true,否则返回fa...转载 2018-04-21 16:40:04 · 955 阅读 · 0 评论 -
STL(5)之优先队列(priority_queue)
priority_queue 优先级队列是一个拥有权值概念的单向队列queue,在这个队列中,所有元素是按优先级排列的(也可以认为queue是个按进入队列的先后做为优先级的优先级队列——先进入队列的元素优先权要高于后进入队列的元素)。在计算机操作系统中,优先级队列的使用是相当频繁的,进线程调度都会用到。在STL的具体实现中,priority_queue也是以别的容器作为底部结构,再根据堆的处理规则...转载 2018-04-21 16:44:45 · 223 阅读 · 0 评论 -
STL(6)之set 和hash_set
set和hash_set是STL中比较重要的容器,有必要对其进行深入了解。在STL中,set是以红黑树(RB-tree)作为底层数据结构的,hash_set是以Hash table(哈希表)作为底层数据结构的。set可以在时间复杂度为O(logN)情况下插入、删除和查找数据。hash_set操作的时间复杂度则比较复杂,这取决于哈希函数和哈希表的负载情况。下面列出set和hash_set的常用函数:...转载 2018-04-21 16:54:56 · 1706 阅读 · 0 评论 -
cin,gets()区别,getline(),getchar()
下面通过两个例子说明一下此cin和gets()区别:#include<iostream>using namespace std;int main(){ char str[20]; cin>>str; cout<<str<<endl; return 0;}输入:abc[空格]abc输出:abc#include&l...原创 2018-03-07 21:27:28 · 973 阅读 · 0 评论 -
Java Web第一节课之Servlet基本过程
1、c:\tomcat\bin\startup.bat tomcat启动2、在C盘建立以下目录结构 3、在src目录下建立Ch1Servlet.java文件 4、在etc目录下新建web.xml文件:<?xml version="1.0"encoding="ISO-8859-1"?><web-appxmlns="http://java.sun.com/xml/ns/j2...原创 2018-03-05 11:51:18 · 418 阅读 · 0 评论 -
3346--数据结构实验之二叉树五:层序遍历
数据结构实验之二叉树五:层序遍历Time Limit: 1000MS Memory Limit: 65536KB SubmitStatistic Discuss Problem Description已知一个按先序输入的字符序列,如abd,,eg,,,cf,,,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。Input 输入数据有多行,第原创 2017-08-09 16:19:56 · 256 阅读 · 0 评论 -
kmp字符串匹配算法
KMP算法 在介绍KMP算法之前,先介绍一下BF算法。一.BF算法 BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结果。 举例说明: S: ababcababa转载 2017-08-09 17:15:00 · 226 阅读 · 0 评论 -
C++ queue
1、stackstack 模板类的定义在头文件中。stack 模板类需要两个模板参数,一个是元素类型,一个容器类型,但只有元素类型是必要的,在不指定容器类型时,默认的容器类型为deque。定义stack 对象的示例代码如下:stack s1;stack s2;stack 的基本操作有:入栈,如例:s.push(x);出栈,如例:s.pop();注意,出栈操作只是原创 2017-08-11 11:54:43 · 5823 阅读 · 0 评论 -
读入字符时往往会多一个回车,如何解决
举个例子:当你要输入一个字符串之前,还有输入,比如输入一个数字,这时候你再输入字符时,程序会出现闪退的现象。解决办法:一:在数字后面加一个\n,比如scanf("%d\n",&n);二:直接在后面加一个getchar()吃掉这个回车#include #include #define N 105 int main() { int n,l,p; char a原创 2017-08-18 17:57:40 · 2304 阅读 · 0 评论 -
memset()函数
memset()函数主要应用于数组初始化。头文件:#include,因为它是字符串函数。例如:初始化为0;int a[50];memset(a,0,sizeof(a));没有初始化的例子:int a[3]={1};//定义一个长度为3的数组;a[0]=1,a[1]=0,a[2]=0;原创 2017-08-14 10:22:20 · 250 阅读 · 0 评论 -
C语言中的return语句后面不加表达式,直接return;,返回的是什么?表示的是什么?
有一个小盆友今天问我这个问题,其实就是相当于什么也不返回,表示退出函数。return有带参数和不带参数之分.return带参数的.就是.返回值.不带参数的就是结束当前程序块,其实不用想太复杂了原创 2017-08-21 16:44:33 · 26421 阅读 · 8 评论 -
std::ios::sync_with_stdio(false);--------探寻C++最快的读取文件的方案
在竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式。相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,于是从此以后发誓不用cin读数据。还有人说Pascal的read语句的速度是C/C++中scanf比不上的,C++选手只能干着急。难道C++真的低Pascal一等吗?答案是不言而喻的。一个进阶的方法是把数据一下子读进来,然后再转化字符串,这种方法传说中很不错,转载 2017-08-22 11:21:36 · 434 阅读 · 0 评论 -
计算x的n次幂 算法比较
计算x的n次幂最简单直接的方法就是相乘n次,很容易写出程序:[cpp] view plain copy//计算x^n 直接乘n次 by MoreWindows( http://blog.csdn.net/MoreWindows ) int power1(int x, unsigned int n) { int result = 1; while (n--) ...转载 2018-04-21 17:03:57 · 6543 阅读 · 0 评论