
C++
Smith先生
全栈多媒体软件系统技术负责人与资深架构师,目前任职于国际大型半导体公司,拥有超过8年以上的音视频软件设计,产品开发与平台化交付经验。工作以来,带领了多个大型全新多媒体项目攻关开发,精进和优化了多个大型软件系统,成功完成平台化建设和运维,为多个技术公司构建了可持续迭代的软件生态,业务面设计GPU系统、人工智能、视频监控系统、会议系统、采集系统、数字电视、多媒体框架、播放器、流式计算及编解码加速等,拥有从上层到底层的全栈软件开发经验和技术团队建设和管理经验。学海无涯,山外有山,天外有天。同大部分技术人一样,希望每天保持进步,最终实现财富自由和人生理想。:)
展开
-
Boost智能指针——shared_ptr
boost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boost::shared_ptr是可以共享所有权的智能指针,首先让我们通过一个例子看看它的基本用法: #include#include #include class implementation{pub转载 2014-06-07 10:00:02 · 1477 阅读 · 0 评论 -
[业余学习]整形数反转
class Solution {public: int reverse(int x) { long long rest = 0; while(x) { rest = rest*10 + x%10; x /= 10; } return (restINT_MAX) ? 0转载 2017-08-06 22:39:57 · 433 阅读 · 0 评论 -
【业余练手系列】First Unique Character in a String
Given a string, find the first non-repeating character in it and return it's index. If it doesn't exist, return -1.Examples: s = "leetcode"return 0.s = "loveleetcode",return 2.Note:原创 2017-08-06 16:38:35 · 456 阅读 · 0 评论 -
一种简单的单链表逆序、反转的方法
假定一个单链表,其排列是这样的:head-> P1--->P2--->P3--->................. 其中,P1就是头结点。 反转思路是: (1)第一步反转,P1和P2, 也就是使得P2->next=P1. 如图:headP3 (2)第二步,采用同样的方式,反转P3和P2,也就是使得;P1 既然是第一步一样地方式,就不能简单地P3-->原创 2017-04-09 10:29:30 · 1751 阅读 · 0 评论 -
实例分析C++ 权限控制及const用法
一、 引言 分析如下小程序。找出它的错误(bug),并修改它:class Identifier { int x; void show() { cout << x; };};class Student { const Identifier id; // some other variables/functions below原创 2013-03-24 12:14:47 · 1532 阅读 · 0 评论 -
通过一道试题深入理解指针及数组内存布局
#include bool bIsLittleEndian(){ union check { int i; char ch; } c; c.i = 1; return (c.ch ==1);}int main(int argc, char **argv){ int a[4]={1,2,3,4}; int *ptr1=(int *)(&a+1)原创 2014-10-11 15:52:38 · 997 阅读 · 0 评论 -
STL的vector<string>的初始化方式总结
(1)第一种,类似于数组的方式:std::vector strArray(10);strArray[0] = "hello";strArray[1] = "world";strArray[2] = "this";strArray[3] = "find";strArray[4] = "gank";strArray[5] = "pink";strArray[6 ]= "that";原创 2015-04-08 13:51:20 · 32547 阅读 · 1 评论 -
Hadoop第一天---初识Hadoop
原文出自: http://www.cnblogs.com/Bestsonic/p/4199779.htmlHadoop能解决的问题: 1.海量数据需要及时分析和处理。 2.海量数据需要深入分析和挖掘。 3.数据需要长期保存。问题: 1.磁盘IO成为一种瓶颈,而不是CPU资源。 2.网络带宽是一种稀缺资源。 3.硬件故障成为影响稳定的一大因素。转载 2015-01-04 22:18:47 · 870 阅读 · 0 评论 -
深入理解内联inline函数的优缺点,性能及使用指南
Inline function is the optimization technique used by the compilers. One can simply prepend inline keyword to function prototype to make a function inline. Inline function instruct compiler to insert转载 2015-01-12 21:19:32 · 10162 阅读 · 0 评论 -
通过C++和python场景实例理解装饰器设计模式。
参考文章:(1)http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html (2)http://en.wikipedia.org/wiki/Decorator_pattern 装饰器是一个很著名的设计模式,充分利用了继承和聚合的优势,它以“装饰”的含义生动形象地描绘了“灵活、动态地为已经存在的对象添加额外的功能“的意图。原创 2015-01-08 09:57:15 · 1826 阅读 · 1 评论 -
Python语言入门之内置数据类型
1. 字典(dictionary)Dictionary 是 Python 的内置数据类型之一,它定义了键和值之间一对一的关系。它的作用类似于C++ STL里的map容器.就是一组key和value以及它们之间的映射。它的特点是:key具有唯一性;相同的value可具有不同的key值,但不同的value不可能对应一个key.2. 列表(list)C++没有完全对应原创 2014-09-24 16:23:14 · 1349 阅读 · 0 评论 -
Boost智能指针——scoped_ptr
boost::scoped_ptr和std::auto_ptr非常类似,是一个简单的智能指针,它能够保证在离开作用域后对象被自动释放。下列代码演示了该指针的基本应用:#include#include #include class implementation{public: ~implementation() { std::co转载 2014-06-07 10:06:06 · 892 阅读 · 0 评论 -
C++ boost库----share_from_this类的作用和实现原理
使用boost库时,经常会看到如下的类class A:public enable_share_from_this在什么情况下要使类A继承enable_share_from_this?使用场合:当类A被share_ptr管理,且在类A的成员函数里需要把当前类对象作为参数传给其他函数时,就需要传递一个指向自身的share_ptr。我们就使类A继承enable_share_from_th转载 2014-06-07 09:37:05 · 11420 阅读 · 0 评论 -
深入理解构造和析构函数
深入理解构造和析构函数 一、 概述构造函数和析构函数是当你刚接触C++的时候就会碰到的两个概念,也是C++语法中较难掌握的两个概念。但是它们又是学习C++必须掌握的,可以说没有理解构造和析构函数,你的C++就还没有入门。本文拟对构造函数、析构函数进行系统的介绍,使得那些对这两个概念有初步认识的人能有更进一步的理解。 二、 构造函数做什么?构造函数从无到有创建对象。 构造函数...转载 2018-03-18 19:14:08 · 3149 阅读 · 0 评论