- 博客(24)
- 资源 (2)
- 收藏
- 关注
原创 lenovo G510装win7 + ubuntu双系统
因为先装了win7是在EFI模式下,所以装ubuntu也要选择EFI模式下装。装好后可以进入ubuntu用boot-repair修改MBR,同时在BIOS下调整EFI下的启动顺序,将ubuntu设为第一顺序。这样就可以用ubuntu引导win7。
2014-06-18 13:25:54 2192 1
原创 高效删除vector中的负数
采用交换的方法,这样可以void eraseNegative(vector& vect){ vector::iterator iter = vect.begin(); for(; iter != vect.end(); ++iter) { if(*iter < 0) { vector::iterator pos
2014-04-08 16:23:41 865
转载 浅析动态内存分配及Malloc/free的实现
一、概述: 动态内存分配,特别是开发者经常接触的Malloc/Free接口的实现,对许多开发者来说,是一个永远的话题,而且有时候也是一个比较迷惑的问题,本文根据自己的理解,尝试简单的探究一下在嵌入式系统中,两类典型系统中动态内存分配以及Malloc/Free的实现机制。二、内存分配方式 Malloc/Free主要实现的是动态内存分配,要理解它们的工作机制,
2014-03-30 11:10:28 536
原创 深拷贝 和 浅拷贝
深拷贝和浅拷贝的定义可以简单理解成:如果一个类拥有资源(堆,或者是其它系统资源),当这个类的对象发生复制过程的时候,这个过程就可以叫做深拷贝,反之对象存在资源,但复制过程并未复制资源的情况视为浅拷贝浅拷贝资源后在释放资源的时候会产生资源归属不清的情况导致程序运行出错。#include using namespace std;class CA{ public: CA(in
2014-03-28 20:18:52 474
原创 归并排序
#include #include using namespace std;void myMerge(int a[], int from, int mid, int to){ assert(from <= mid && mid < to); int* arr = new int[to-from+1]; assert(arr); int i = from;
2014-03-25 16:46:50 378
原创 二分查找
int binarySearch(int a[], int startIndex, int endIndex, const int target){ int left = startIndex; int right = endIndex; while(left <= right) { int middle = ((right - left) >>
2014-03-25 16:40:45 365
原创 前++ 后++
int b = (++a) * (a++); 等价于 int b = (a++) * (++a);可解释为 : ++a; int b = a * a; a++;int b = (++a) * (++a);可解释为 ++a; ++a; int b = a * a;#inc
2014-03-21 21:42:00 452
原创 伴随数组求亲和数::伴随数组
int sum[5000000] = {0};void InitSum(){ for(int i=1; 2*i <= 5000000; ++i) { int j = i+i; while(j <= 5000000) { sum[j] += i; j += i; }
2013-12-04 21:40:49 575
原创 在数组中删除尽可能少的数,使得数组满足“先由小到大,再由大到小”
void MyDelete(int* a, int n){ int* asc = new int[n]; // asc[i]表示以a[i]结尾的最长升序 int* desc = new int[n]; // desc[i]表示从a[i]开始的最长降序 int* inc = new int[n]; // 亮点,用辅助数组的巧妙之处 const in
2013-12-04 15:51:35 943
原创 effective c++
1. 不要让构造函数和析构函数吐出异常, 这样可能会造成资源泄漏和不明确行为2.构造函数和析构函数不要调用虚函数。3.将基类析构函数定义为虚函数 ,这样动态析构时不会出错4.将常用精简的函数设为inline,不要滥用,否则造成代码膨胀5.使用template时也要考虑代码膨胀的问题6.use const whenever possible7.使用引用的好处:少了一个构造和析
2013-12-01 12:24:12 353
原创 模板swap
template void swap(tp (&a)[num], tp (&b)[num]){ for(size_t t=0; t<num; ++t) swap(a[t],b[t]);}交换数组内容, 此模板必须使用引用, 否则num值无法传过去,这是一个指针降阶的问题
2013-12-01 11:51:31 1033
原创 实现rotate的几种算法
Rotate 123abcdefg to abcdefg123. there are three ways to do this(1)循环换位算法(2)三次反转算法(3)排列循环置换算法:王晓东老师在著作中介绍了一条循环置换分解定理:对于给定数组A[0..N-1]向后循环换位N-K位运算,可分解为恰好gcd(K,N-K)个循环置换,且0,...,gcd(K
2013-12-01 11:33:11 1085
原创 const_cast所造成的同地址不同值问题
#include using namespace std;int main(){ const int m = 9; int* p = const_cast(&m); *p = 2; cout << &m << " " << m << endl; cout << p << " " << *p << endl; return
2013-12-01 11:25:08 639
原创 一些C++语法
一、 C++ 中cast 意为强制类型转换 , const_cast 去除const特性; static_cast 类型静态转换 float f; static_cast(f); dynamic_cast 将指向基类的指针动态转换为指向派生类的指针 Base* p; Derive* pp = dynamic_ cast(p)
2013-12-01 11:16:10 409
原创 阻止copying行为
方法一:class Derive{private: Derive(const Derive&); Derive& operator=(const Derive&); //只声明,不定义};方法二:class Uncopyable{protected: Uncopyable() {} //允许Derived对象构造和析构 ~Uncopy
2013-12-01 11:09:41 455
原创 copy_constructor, copy_assignment
#include using namespace std;class Base{public: Base() { cout << "Base constructor " << endl; } Base(const Base &b) { cout << "Base copy constructor " << end
2013-12-01 10:39:55 469
转载 9个offer,12家公司,35场面试,从微软到谷歌
http://blog.csdn.net/yangtrees/article/details/8833560
2013-10-05 10:19:25 580
转载 最新阿里巴巴2014校招研发笔试题目回忆
http://blog.csdn.net/arcsinsin/article/details/11694807
2013-10-05 10:07:19 669
转载 大数据量,海量数据 处理方法总结
转自:http://www.cppblog.com/longzxr/archive/2010/10/24/131047.aspx?opt=admin大数据量的问题是很多面试笔试中经常出现的问题,比如baidu google 腾讯 这样的一些涉及到海量数据的公司经常会问到。 下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题
2011-11-25 23:09:20 342
原创 拿球问题
有1001个球,两人轮流拿,每次只能拿1、2或者4个,谁拿了最后的一次就算谁输,假设是你先拿,请问你有把握获胜么?如果有,你该怎么拿,如果没有,为什么?对策::先拿一个,之后:对方拿一个,自己拿两个;对方拿两个,自己拿一个;对方拿四个,自己拿两个;
2011-11-22 22:15:34 594
原创 C/C++中的字符串问题
#include using namespace std;int main(){ char p[8]="abcdefg"; cout << *p << endl; //a cout << p << endl; //abcdefg cout << p[2] << endl; //c cout << &p[2] << endl; //cdefg
2011-11-19 22:23:27 267
原创 给定一个数组和一个数M,在数组中求一些数使它们的和最接近M------用递归法实现的。。。。。。
#include #include using namespace std;/*数组从a[from]到a[to],b[i]=true表示a[i]被选到,假设选到的那些数和为sum, 函数返回M-sum.....*/int func(int* a, int from, int to, bool* b, int M){ if(from>to) return M;
2011-11-17 22:28:45 1071
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人