C++
文章平均质量分 72
swffsdgasdg
dfgdfsgdgsagvxzvzxvxcqwrwrwerza
展开
-
在模板定义内部指定类型
在模板定义内部指定类型比如说要写一个函数模板,功能是输出STL里面容器的第一个数。那么就应该把容器的类型传递进去#include#includeusing namespace std;templatevoid p(Parm &c){ typename Parm::iterator it=c.begin(); cout<<*it<<endl;}void main原创 2014-10-20 23:21:33 · 1227 阅读 · 0 评论 -
上千万或上亿数据(有重复),统计其中出现次数最多的N个数据. C++实现
上千万或上亿的数据,现在的机器的内存应该能存下。所以考虑采用hash_map/搜索二叉树/红黑树等来进行统计次数。然后就是取出前N个出现次数最多的数据了,可以用第2题提到的堆机制完成。#include "IOSTREAM"#include#include#includeusing namespace std;int main(void){ //海量待统计数据 char原创 2015-03-14 00:01:46 · 6487 阅读 · 0 评论 -
leetcode-Binary Tree Level Order Traversal 二叉树层序遍历
leetcode-Binary Tree Level Order Traversal 二叉树层序遍历#include#includeusing namespace std;typedef struct BiTree{ int val; struct BiTree *lchild; struct BiTree *rchild;}BiTree;void main(原创 2014-11-24 21:22:59 · 826 阅读 · 0 评论 -
STl-traits编程技巧
STl-traits编程技巧无论是泛型思想或者是STL(标准库)的实际运用,迭代器(iterators)都扮演着重要的作用。STL的中心思想是:将容器和算法分开,彼此独立设计,最后再讲他们融合在一起。容器和算法的泛型设计并不难,使用C++的类模板(class tempalte)和成员模板(function template)就能完成。但要是将两者融合在一起,你还需要掌握一些其他的技巧,原创 2014-11-26 12:56:34 · 1063 阅读 · 0 评论 -
i++和++i的区别--后缀运算符效率研究
i++和++i的区别如果使用内置的类型的话是没有太大区别的,内置类型比如说int 等。如果使用的是class构造的对象,那么区别还是挺大的。我们要先理解他们各自的工作方式。++i我们成为前缀运算符,它是先自增,然后返回值i++称为后缀运算符,它是先建立一个副本,自己递增,最后返回副本。下面来解释一下为什么i++为何效率会这么低。我原创 2014-11-19 02:57:55 · 1399 阅读 · 0 评论 -
leetcode-Remove Duplicates from Sorted Array
leetcode-Remove Duplicates from Sorted Array Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.Do not allocate extra spac原创 2014-11-12 15:14:25 · 719 阅读 · 0 评论 -
c++实现一个简单的空间配置器allocator
c++实现一个简单的空间配置器allocator c++中内存分配和对象构造是分开来的,内存的分配类似malloc函数在内存空间开辟一段空间,但是里面不保存任何数据。对象的构造相当于给这段空间复制。 这么做的理由有两点: 在预先分配的内存中构造对象很浪费,可能创建从不使用的对象,当实际使用预先分配的对象时,被使用的对象往往又必须重新原创 2014-10-26 18:16:23 · 3293 阅读 · 1 评论 -
leetcode-Merge Two Sorted Lists
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.递归版/** * Definition for singly-linked list.原创 2014-11-10 12:09:11 · 713 阅读 · 0 评论 -
STL源码之实现一个简易的Vector容器
STL源码之实现一个简易的Vector容器 这里需要的基础知识主要是类模板和函数模板,以及一个C++内存分配的技术allocator类,它提供可感知类型的内存分配,这个类支持一个抽象接口,以分配内存并随后使用该内存保存对象。 使用allocator类,首先应用allocator类建立一个allocator对象,然后使用该对象你可以分配内存,释放内存,构造你原创 2014-10-22 17:10:55 · 1008 阅读 · 0 评论 -
无源最短路径之--地铁换乘
问题描述:描述:已知2条地铁线路,其中A为环线,B为东西向线路,线路都是双向的。经过的站点名分别如下,两条线交叉的换乘点用T1、T2表示。编写程序,任意输入两个站点名称,输出乘坐地铁最少需要经过的车站数量(含输入的起点和终点,换乘站点只计算一次)。地铁线A(环线)经过车站:A1 A2 A3 A4 A5 A6 A7 A8 A9 T1 A10 A11 A12 A13 T2 A14 A15原创 2015-03-24 16:30:11 · 1566 阅读 · 0 评论