
C++
Mr_Guo
我有梦想所以我在奋斗
展开
-
C++生成不重复的随机数
在做洗牌算法的时候用到了随机数,并且产生的随机数中不能有重复的元素,因为是用C语言实现的,就把值赋给数组,然后用随机数产生数组的下标,每产生一个就删除对应的元素,然后随机数的生成范围减一,但是这样做每次都要循环去移动数组元素,从时间复杂度上来说这样并不好。于是,后来用C++重新实现:实现的思路并没有变,只是把数组换成了容器,因为STL有删除元素的操作,所以就减少了循环的使用vector g原创 2013-12-26 09:14:57 · 5429 阅读 · 1 评论 -
STL-vector与list的区别
标准库定义了三种顺序容器类型:vector、list和deque(双端队列double-end-queue),他们的差别在于访问元素的方式以及对容器进行插入、删除等相关操作的运行代价不同。 vector 支持快速随机访问 list 支持快速插入、删除 deque 双端队列 vector是顺序存储,原创 2014-01-11 09:27:39 · 1839 阅读 · 0 评论 -
STL-泛型算法
使用泛型算法需包含 algorithm头文件 numeric头文件 //find操作 vector ivec = {1, 15, 3, 16, 92, 29, 37, 31}; int search_value = 26; vector::const_iterator iter0 = find(ivec.begin(), ivec.end(), search_valu原创 2014-01-11 13:07:45 · 1297 阅读 · 0 评论 -
关于位运算的一道试题校招笔试题
之前参加某公司的比试有一道题至今还记得,一直在寻找最优解法,今天又看到了一个更好的方法。题目具体的不记得了,大概就是输入一个char类型的数,然后统计二进制表示的1的个数。我当时的解法很二逼,从n = 0~7,算2的n次幂,然后拿输入的数与2的n次幂做“与”运算,结果不等于0就计数+1.很明显,这么写是不会拿到offer的。后来我想了想,问题出在求2的n次幂上,于是就定义了一个新的变量原创 2014-01-12 16:45:39 · 1484 阅读 · 0 评论