![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程
文章平均质量分 70
AllenHuai
鹅厂最高的小白程序猿!
展开
-
位操作总结
位操作篇共分为基础篇和提高篇,基础篇主要对位操作进行全面总结,帮助大家梳理知识。提高篇则针对各大IT公司如微软、腾讯、百度、360等公司的笔试面试题作详细的解答,使大家能熟练应对在笔试面试中位操作题目。 下面就先来对位操作作个全面总结,欢迎大家补充。在计算机中所有数据都是以二进制的形式储存的。位运算其实就是直接对在内存中的二进制数据进行操作,因此处理数据的速度非常快。转载 2015-03-16 11:31:47 · 553 阅读 · 0 评论 -
可重入函数与线程安全函数
可重入函数与线程安全函数 线程安全函数 • 概念: 线程安全的概念比较直观。一般说来,一个函数被称为线程安全的,当且仅当被多个并发线程反复调用时,它会一直产生正确的结果。 • 确保线程安全: 要确保函数线程安全,主要需要考虑的是线程之间的共享变量。属于同一进程的不同线程会共享进程内存空间中的全局区和堆,而私有的线程空间则主要包括栈转载 2015-08-17 21:35:32 · 414 阅读 · 0 评论 -
c++中几种0值的比较问题
1. 整型值if(val == 0) / if(val != 0)2. bool值if(flag) / if(!flag)3. floatconst float accuracy = 0.000001;if(val > -accuracy || val4.NULLif(p == NULL) / if(p != NULL)原创 2015-08-16 23:15:15 · 5632 阅读 · 0 评论 -
为什么多线程读写 shared_ptr 要加锁?
为什么多线程读写 shared_ptr 要加锁?陈硕(giantchen_AT_gmail_DOT_com)2012-01-28最新版下载:http://chenshuo.googlecode.com/files/CppEngineering.pdf我在《Linux 多线程服务端编程:使用 muduo C++ 网络库》第 1.9 节“再论 shared_ptr 的线程安全”中写转载 2015-08-23 22:24:48 · 673 阅读 · 0 评论 -
如何将float转为int
最近突然想知道编译器中的浮点数转整型是怎么实现的,无奈查阅了好多资料居然都没有关于这方面的记载,于是我决定自己实现一下简单的浮点数转整型 以float转int为例 double转int类似在做强转之前,你首先得知道浮点数在内存中是怎么存储的,具体可以参考我之前的这篇文章c++中浮点数的存储方式有了以上的基础,那么我们直接上代码.代码中我会做出相关注释,代码很简单,基本算是通俗易懂原创 2015-04-01 11:24:03 · 7909 阅读 · 1 评论 -
C++类内存分布+钻石模型的解决方法
C++类内存分布#include<iostream>using namespace std;class Base{ private: int val; public: Base(int i = 0):val(i){cout<<val<<endl;} ~Base(){}};class Derived1 : public Base原创 2015-03-23 15:47:08 · 1395 阅读 · 0 评论 -
[转]陈硕10分钟搞定string
#pragma once#include #include #include namespace trivial{// A trivial String class that designed for write-on-paper in an interviewclass String{ public: String() : data_(new char[1])转载 2015-03-30 23:23:44 · 716 阅读 · 0 评论 -
main函数之前编译器都为你干了什么?
main函数之前都干了什么?原创 2015-03-11 21:55:07 · 1160 阅读 · 2 评论 -
智能指针scoped_ptr源码剖析
智能指针scoped_ptr源码剖析以下为简化后的源码实现…#include<iostream>#include<string>#include<memory>#include<cassert>using namespace std;//scoped_ptr 指向一个对象,死活不肯交出资源占有权(私有的复制构造函数和赋值运算符),除非你和我一样(swap())//scoped_ptr 指原创 2015-03-28 23:16:39 · 495 阅读 · 0 评论 -
c++中浮点数的存储方式
浮点数的存储方式原创 2015-03-11 22:05:26 · 2740 阅读 · 0 评论 -
智能指针auto_ptr源码剖析
何时我们需要智能指针? 资源所有权的共享 共享所有权是指两个或多个对象需要同时使用第三个对象的情况。这第三个对象应该如何(或者说何时)被释放?为了确保释放的时机是正确的,每个使用这个共享资源的对象必须互相知道对方,才能准确掌握资源的释放时间。从设计或维护的观点来看,这种耦合是不可行的。更好的方法是让这些资源所有者将资源的生存期管理责任委派给一个智能指针。当没有共享者存在时,智能指针就可以原创 2015-03-28 13:12:45 · 769 阅读 · 0 评论 -
c++中的四大类型强转
C++的四种强制转换 C++中的四种转换,是一个老生常谈的话题。但是对于初学者来说,该如何选择哪种转换方式仍然会有点困惑。而且我总是觉得“纸上得来终觉浅”,于是便“绝知此事要躬行”。于是利用闲暇时光,整理一下reinterpret_cast、const_cast、static_cast和dynamic_cast这四种强制转换的相关知识。(转载请指明出于breaksoftwar转载 2015-03-27 09:18:20 · 2243 阅读 · 0 评论 -
字符串相关函数的实现
#include#includeusing namespace std;/** 字符串相关函数* Copyright (C) 2015 淮小小小龙*/char *mystrcpy(char *dest, const char *src){ assert(dest!=NULL && src!=NULL); char *ret = dest; while( (*dest++原创 2015-03-14 21:20:51 · 476 阅读 · 0 评论