
算法优化和STL
文章平均质量分 80
modiziri
这个作者很懒,什么都没留下…
展开
-
C#简单介绍 + helloworld
C#是一门“简单,现代,通用”以及面向对象的程序设计语言,运行于.net framework之上支持:强类型检查,数组维度检查,未初始化变量引用检测,自动垃圾收集改变:指针的作用被削弱了,只能被用于不安全模式只允许单一继承,没有宏数组声明语法不同没有模板(template),引入泛型适合开发:高性能开发(比同语言快)与快速原型开发(精准需原创 2014-03-28 13:22:42 · 1229 阅读 · 0 评论 -
C++ str系列函数 (包含strtok用法)
1、strcat()此函数原型为 char *strcat(char *dest, const char *src).功能为连接两个字符串,把src连接到dest后面;返回dest地址实现如下[cpp] view plaincopychar * strcat(char *dest,const char *src) {原创 2014-12-05 15:35:19 · 13312 阅读 · 0 评论 -
uint8_t / uint16_t / uint32_t /uint64_t 的简单介绍
这些类型的头文件 #include typedef unsigned char uint8_t typedef unsigned int uint16_t typedef unsigned long int uint32_t typedef unsigned long long int uint64_t typedef signed char i转载 2014-12-09 18:10:00 · 47152 阅读 · 2 评论 -
LINUX core dump详解
1. 前言:有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的.但这不像编译错误一样会提示到文件->行, 而是没有任何信息, 使得我们的调试变得困难起来.2. gdb:有一种办法是, 我们用gdb的step, 一步一步寻找. 这放在短小的代码中是可行的, 但要让你step一个上万行的代码, 我想你会从此厌恶程序员这个名字转载 2014-12-19 14:01:17 · 752 阅读 · 0 评论 -
C++输入输出流的基本函数及语法
1,EXPECT_*系列和ASSERT_*系列。这两个系列的函数都是用于断言,也就是说判断是否满足要求,满不满足都会输出log。举个例子,EXPECT_EQ(3,Add(1, 3))这里就是判断3和Add(1, 3)是否相等,然后在结果中输出g:\myproject\c++\gtestdemo\gtestdemo\gtestdemo.cpp(16): error: Value of原创 2014-12-03 21:00:45 · 1685 阅读 · 0 评论 -
C++ 多线程资源锁的两种表现形式--Mutex和Critical Section的区别
Mutex和Critical Section都是主要用于限制多线程(Multithread)对全局或共享的变量、对象或内存空间的访问。下面是其主要的异同点(不同的地方用绿色表示)。 MutexCritical Section性能和速度慢。Mutex 是内核对象,相关函数的执行 (WaitForSingl转载 2014-12-20 17:31:54 · 2274 阅读 · 0 评论 -
C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。 堆,就是那些由 new 分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个 new 就要对应一个 delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。堆可以动转载 2014-12-19 11:17:25 · 505 阅读 · 0 评论 -
c++中enum 如何使用
c++中enum 如何使用枚举类型,顾名思义,“枚”作为量词,作“个”讲,那么枚举,就是一个一个的列举,如果一件事情能够被一个一个的列举,那么它的数量肯定就是有限的,否则是不能被一一列举出来的。所以枚举类型即为能被列举的常量的一个集合。在生活中,枚举的例子随处可见,比如礼拜几,那么就可以作为一个枚举变量。这个变量所存储的值,是有限的,且,能被我们所列举。再比较说,性别。它也可以作为转载 2015-01-08 11:53:54 · 765 阅读 · 0 评论 -
pthread_join/pthread_exit的用法解析
官方说法:函数pthread_join用来等待一个线程的结束。函数原型为: extern int pthread_join __P ((pthread_t __th, void **__thread_return)); 第一个参数为被等待的线程标识符,第二个参数为一个用户定义的指针,它可以用来存储被等待线程的返回值。这个函数是一个线程阻塞的函数,调用它的线程将一直等待到被等待的线程原创 2014-12-16 16:04:36 · 34776 阅读 · 4 评论 -
C++个人语法错误记录
1,&用在声明的地方是引用,但是用在函数调用的时候或者语法上面是取地址符int getnum(int &a);//这个是引用getnum(&a); //这个是取地址2,namespace很可能是包含一块领域的,例如 namespace QT,不能包含main不然会出错的,最好只包含你用的那一块。原创 2014-12-12 15:09:55 · 1107 阅读 · 0 评论 -
Linux C++的多线程编程(新手最全教程)
1. 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢转载 2014-12-16 14:43:35 · 6284 阅读 · 0 评论 -
STL常用函数简记(不断更新)
学一个更新一个序列类:void reverse(begin, end)//反转序列,1234 —》 4321bool next_permutation(begin,end)// 下一个序列,1234 变成1243返回true,如果是4321 变成1234返回false删除类:void unique(begin,end) //原创 2014-03-28 12:45:44 · 792 阅读 · 0 评论 -
三分钟了解红黑树
红黑树本身是二叉树,举例:红黑树的每个节点都带有颜色,会有一个专门的属性color在对象里记载,红黑树有五个属性:1,根节点是黑色的2,节点是红色或黑色的3,所有叶节点(也就是NIL)都是黑色的*4,红色节点的儿子都是黑色的,也就是说红色的节点不能靠着*5,从任一节点到每个叶节点的简单路径包含相同的黑色节点。(4,5重要)这些属性就约束了红黑树:原创 2014-03-27 11:36:08 · 1488 阅读 · 0 评论 -
把快排quicksort() 优化到 STL -> sort()
这篇文章是基于已经基本了解快排及其思想的人而设定的,不清楚快排基本思想和各种简单排序的同学可以先谷歌一下。正文:最简单的优化方法,基准值的选取。基准值的选取影响到分治程度和递归深度,所以对快排来说极其重要,取到最是靠中间的数快排的效率就越高。一般来说快排基准值的选取包括取固定位置(纯粹靠运气),取随机位置(在部分有序是效率高),还有就是我们小学学过的一个数学知识,叫截尾平均值,也就是把原创 2014-03-23 10:26:07 · 2592 阅读 · 0 评论 -
STL源码剖析------nth_element()&&partition()
直接贴第一段代码:// nth_element() and its auxiliary functions. template void __nth_element(_RandomAccessIter __first, _RandomAccessIter __nth, _RandomAccessIter __last, _Tp*) { whil原创 2014-03-24 11:06:41 · 1505 阅读 · 0 评论 -
STL源码解释-----sort()&&partial_sort()
原来虽然Quick和Heap的时间复杂性是一样的,但堆排序的常熟因子还是大些的,并且堆排序过程中重组堆其实也不是个省时的事。原创 2014-03-22 01:58:11 · 1914 阅读 · 0 评论 -
C++,STL里的sort类全部函数简介
刷题的时候经常会遇到不同的问题,有时做一些复杂的问题的时候涉及的方面很多,排序,查找,排重等等,如果每个问题都要自己写,不但浪费时间而且还影响效率。这时我们自然而然就会想到stl模板库里一些标准函数,而且这些函数全都是同等情况下算法最优的函数,所以完全不用担心时间和空间复杂度。这里首先介绍一下sort的所有类函数:sort类的函数有好几类:函数名功能描述so原创 2014-03-20 12:15:14 · 1581 阅读 · 0 评论 -
全排列剖析:求n个数第k个排序----康托展开
康托展开的公式:(不用记,看形势就行,下面会有例子)X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0!ai为整数,并且0适用范围:没有重复元素的全排列第一类题:N个数的第k个排序,例子,1,2,3,4共有4!种排列,1234,1243,1324等等。按顺序应该是12341243132413421原创 2014-03-28 12:30:06 · 7476 阅读 · 1 评论 -
全局变量的用法
1.extern的作用 extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b); 则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名而不是C++的, C++的规则在翻译这个函数名时会把fun这个名字变得面目全非,可能是fun@aBc_int_int#%$也可能是别的,这要看编译转载 2015-05-14 16:47:46 · 653 阅读 · 0 评论