- 博客(19)
- 资源 (42)
- 收藏
- 关注
原创 百度面试题:求一个已排序的数组中绝对值最小的元素
题目为:有一个已经排序的数组(升序),数组中可能有正数、负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4。这一题该如何求呢?初步的解决思路是: 1.数组中的元素全为正,取最左边的数字; 2.数组中
2013-01-29 22:57:55 5575 3
原创 STL之七:STL各种容器的使用时机详解
C++标准程序库提供了各具特长的不同容器。现在的问题是:该如何选择最佳的容器类别?下表给出了概述。但是其中有些描述可能不一定实际。例如:如果你需呀处理的元素数量很少,可以虎落复杂度,因为线性算法通常对元素本身的处理过程比较快,这种情况下,“显性复杂度搭配快速的元素处理”要比“对数复杂度搭配慢的元素处理”来得划算。 作为对上表的补充,使用时: 1.缺省情况下应该使用v
2013-01-28 20:59:59 3921 1
原创 STL之六:map/multimap用法详解
map/multimap 使用map/multimap之前要加入头文件#include,map和multimap将key/value当作元素,进行管理。它们可根据key的排序准则自动将元素排序。multimap允许重复元素,map不允许重复元素。map和multimap内部的数据结构也是平衡二叉树。 map和multimap根据元素的key自动对元素进行排序
2013-01-27 21:51:37 27575
原创 STL之五:set/multiset用法详解
集合使用set或multiset之前,必须加入头文件Set、multiset都是集合类,差别在与set中不允许有重复元素,multiset中允许有重复元素。sets和multiset内部以平衡二叉树实现1. 常用函数1) 构造函数和析构函数set c:创建空集合,不包含任何元素set c(op):以op为排序准则,产生一个空
2013-01-27 15:17:38 57571 1
原创 C++ Primer经典书目阅读之五:表达式
表达式1. 算术操作符算术操作符主要有: 1.对两个整数做除法,结果仍为整数,如果它的商包含小数部分,则小数部分会被截除;2.求余操作的操作数只能为整型;3.如果两个操作数为正,除法和求余操作的结果也是正数;如果两个操作数的结果都是负数,除法操作的结果为正数或零,而求么操作的结果则为负数或零;2.关系操作符和逻辑操作符关系操作符主要有: 1.逻辑与和逻辑
2013-01-26 20:16:55 1660
原创 C++ Primer经典书目阅读之四:数组和指针
1. 数组1.与vector相比,数组的显著缺陷在于:数组的长度是固定的,而且程序员无法知道一个给定数组的长度。2.与vector不同,一个数组不能用另外一个数组初始化,也不能将一个数组复制给另一个数组,这些操作都是非法的。C++中求数组int a[size]中元素个数可以用sizeof(a)/sizeof(int)2.指针1.尽量避免使用指针和数组2.指针和引用的区别:
2013-01-26 15:24:33 1387
原创 技术人员谈管理之WBS详解
什么是WBS? WBS是英文Work Breakdown Structure(工作分解结构)的缩写。单从字面上进行理解, training.mypm.net W—Work:为克服障碍、实现某种目标而通过身体或头脑付出努力或施展才能; 转自项目管理者联盟 B—Breakdown:划分成部件或分类;分离成基本物质;经受分解; S—St
2013-01-25 09:05:41 2314
原创 STL之一:字符串用法详解
字符串是程序设计中最复杂的变成内容之一。STL string类提供了强大的功能,使得许多繁琐的编程内容用简单的语句就可完成。string字符串类减少了C语言编程中三种最常见且最具破坏性的错误:超越数组边界;通过违背初始化或被赋以错误值的指针来访问数组元素;以及在释放了某一数组原先所分配的存储单元后仍保留了“悬挂”指针。 string类的函数主要有: Member funct
2013-01-24 21:21:44 8788
转载 windows和linux双系统删除linux
装了Windows和linux双系统的朋友,在后期要删除linux是个比较头痛的问题,因为MBR已经被linux接管,本文的目的是如何在windows 和linux双系统下,简单,完美地卸载linux。使用MbrFix.exe卸载Windows双系统Linux不用Windows系统安装盘,不用安装矮人DOS工具箱也可以很简单地实现卸载Linux。双系统卸载Linux的主要问题是当在
2013-01-21 08:42:22 1914
原创 STL之四:list用法详解
list容器介绍相对于vector容器的连续线性空间,list是一个双向链表,它有一个重要性质:插入操作和删除操作都不会造成原有的list迭代器失效,每次插入或删除一个元素就配置或释放一个元素空间。也就是说,对于任何位置的元素插入或删除,list永远是常数时间。常用函数(1) 构造函数list c:创建一个空的listlist c1(c2):复制另一个同类型元素的list
2013-01-19 22:06:36 27166 4
原创 STL之三:deque用法详解
deque函数:deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器的尾部元素。但它又与vector不同,deque支持高效插入和删除容器的头部元素,因此也叫做双端队列。deque类常用的函数如下。(1) 构造函数deque():创建一个空dequedeque(int nSize):创建一个deque,元素个
2013-01-19 19:55:18 76369 1
原创 STL之二:vector容器用法详解
vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组。像数组一样,vector类也用从0开始的下标表示元素的位置;但和数组不同的是,当vector对象创建后,数组的元素个数会随着vector对象元素个数的增大和缩小而自动变化。 vector类常用的函数如下所示: 1.构造函数vector():创建一个空vectorvector(int nSize)
2013-01-15 23:16:53 59492 11
原创 traits技术详解
STL模版库非常强调软件的复用,traits技术是采用的重要手段。traits提取不同类的共性,以便能统一处理。traits技术依靠显示模版特殊化来把代码中因类型不同而发生变化的片段拖出来,用统一的接口来包装。这个接口可以包含一个C++类所能包含的任何东西,如内嵌类型、成员函数、成员变量。作为客户的模版代码,可以通过traits模版类所公开的接口来简洁访问。示例:一直整形数组类CI
2013-01-10 20:56:40 2524
原创 编程珠玑之1.4生成小于n且没有重复的k个整数
生成小于n且没有重复的k个整数可以使用如下方法:方法一:使用C++的set,由于set具有排序功能,而且里面的数不会重复,所以可以生成随机数字插入到set中,直到set中的数字个数为k,具体代码如下://solution 1:use set#include#include#include#includeusing namespace std;#define N 100
2013-01-08 20:00:00 1533
原创 编程珠玑之1.2位逻辑运算实现位向量
所谓位向量就是由一些二进制位组成的向量,位逻辑运算有与(&).或(|),非(!),移位(>)等。 使用位逻辑运算实现位向量所指实现位向量的设置,清零以及探测功能。#define BITPERWORD 32#define SHIFT 5#define MASK 0x1F#define N 10000000int a[1+N/BITPERWORD]//设置数组第i位为1v
2013-01-06 22:27:17 3371
原创 error: ‘ostream_iterator’ was not declared in this scope
编译程序时出现如下错误error: ‘ostream_iterator’ was not declared in this scope解决方法如下:在头文件中加入iterator这个头文件#include错误解决
2013-01-06 17:17:16 6525 3
转载 STL学习系列之一——标准模板库STL介绍
库是一系列程序组件的集合,他们可以在不同的程序中重复使用。C++语言按照传统的习惯,提供了由各种各样的函数组成的库,用于完成诸如输入/输出、数学计算等功能。1. STL介绍标准模板库STL是当今每个从事C++编程的人需要掌握的技术,所有很有必要总结下本文将介绍STL并探讨它的三个主要概念:容器、迭代器、算法。STL的最大特点就是:数据结构和算法的分离,非面向
2013-01-04 21:01:11 1982
转载 转贴:STL之list之用法小结
/*list: 等同于双向链表,内存空间可以是不连续的,通过指针来进行数据的访问 优: 1)插入/删除效率高 缺: 1)不支持随机存取,查询效率较低*/#include iostream>#include string>#include list>using namespace std;void printList(listint> nList)
2013-01-04 20:03:27 1253
转载 转贴:STL之set使用方法小结
/*set/multiset会根据待定的排序准则,自动将元素排序。两者不同在于前者不允许元素重复,而后者允许。1) 不能直接改变元素值,因为那样会打乱原本正确的顺序,要改变元素值必须先删除旧元素,则插入新元素2) 不提供直接存取元素的任何操作函数,只能通过迭代器进行间接存取,而且从迭代器角度来看,元素值是常数3) 元素比较动作只能用于型别相同的容器(即元素和排序准则必须相同)s
2013-01-04 20:01:55 1263
geoserver跨域请求CORS
2015-06-24
JavaScript设计模式
2015-06-15
open lacal
2015-06-03
地理信息系统
2015-04-28
myeclipse10 对应egit2.3版本
2015-01-24
基于Spring和CXF的webservice开发模板
2014-12-17
基于OpenLayers的地图测量功能实现源码
2014-09-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人