C++技术
文章平均质量分 80
JuanA1
年轻是最大的本钱,有拼劲!经过大公司文化熏陶,技术全面,目前从事vxWorks及POWER PC方面的嵌入式工作。
展开
-
转帖:关于链表操作不得不看的经典问题
本文出自 “bluefish” 博客,请务必保留此出处http://bluefish.blog.51cto.com/214870/68462下面是几个关于链表的非常经典的问题与实现,是在《程序员面试攻略》中看到的,由于实在是太经典了,所以忍不住在这里贴下。 问题1:给定一个单项链表,设计一个时间优化并且时间优化的算法,找出该链表的倒数第m个元素。当m=0时,返回链表的转载 2011-06-18 21:21:00 · 1407 阅读 · 0 评论 -
Boost学习系列6-多线程(下)
虽然boost::mutex 提供了lock和try_lock两个方法,但是 boost::timed_mutex 只支持 timed_lock,这就是上面示例那么使用的原因。如果不用timed_lock的话,也可以像以前的例子那样用 boost::mutex。 就像原创 2011-08-14 20:40:56 · 3366 阅读 · 0 评论 -
Boost学习系列6-多线程(上)
一、概述 线程是在同一程序同一时间内允许执行不同函数的离散处理队列,这使得在一个长时间进行某种特殊运算的函数在执行时不阻碍其他的函数时变得十分重要。线程实际上允许同时执行两种函数,而这两者不必相互等待。 一旦一个应用程序启动,它仅包含一个默认线程。此线程执行m原创 2011-08-14 20:01:54 · 5159 阅读 · 0 评论 -
Boost学习系列5-字符串处理-(下)
四、正则表达式库 Boost.Regex Boost C++的正则表达式库Boost.Regex可以应用正则表达式于C++。正则表达式大大减轻了搜索特定模式字符串的负担,在很多语言中都是强大的功能。虽然现在C++仍然需要以 Boost C++库的形式提供这一功能,但原创 2011-08-02 22:14:21 · 5202 阅读 · 0 评论 -
Boost学习系列5-字符串处理-(上)
一、概述 最近工作又开始忙了,额外学习boost的机会也变少了很多,再加上在使用Boost时出现了很多编译错误的问题,让写文章的过程变得不可预测了。但我还是很期待这一部分,这是在平时应用中最常见的,也是boost的看家本领了,将会着重介绍。在标准 C++ 中,用于处理字原创 2011-08-02 21:43:08 · 9314 阅读 · 0 评论 -
VC下遍历文件夹的两种方法
想找个能遍历文件夹的办法,找了下,大概有两种,列举如下第一种方法就是网上常见的一种方法:find(char * lpPath){ char szFind[MAX_PATH]; WIN32_FIND_DATA FindFileData; strcpy(szFi原创 2011-07-18 22:25:09 · 18686 阅读 · 9 评论 -
Boost学习系列4-事件处理(下)
合成器是一个重载了 operator()() 操作符的类。这个操作符会被自动调用,传入两个迭代器,指向某个特定信号的所有返回值。以上例子使用了标准 C++ 算法 std::min_element() 来确定并返回最小的值。 不幸的是,我们不可能把象 std::min_ele原创 2011-07-28 22:46:33 · 3482 阅读 · 0 评论 -
Boost学习系列4-事件处理(上)
一、概述 相信大家在听到术语“事件处理”时就会想到GUI:点击一下某个按钮,相关联的功能就会被执行。点击本身就是事件,而功能就是相对应的事件处理器。 当然这一模式的使用当然不仅限于GUI。一般情况下,任意对象都可以调用基于特定事件的专门函数。本章所介绍的Boost.S原创 2011-07-28 22:38:11 · 5481 阅读 · 0 评论 -
一个让高级C++程序员都会出错的题目
之前我好像在一个论坛上看到了,过太久了,不太记得了,今天翻出来,觉得挺经典的,就贴出来了。如下:这是一个比较典型的问题,很多人都会遇到,这也是一个在C++输入时经常遇到的一个问题。C++代码如下:#include 3.int main() 4.{ 5.原创 2011-07-16 22:35:27 · 2575 阅读 · 6 评论 -
Boost学习系列3-函数对象(上)
这次主要介绍的是函数对象,可能称为“高阶函数”更为适合。它实际上是指那些可以被传入到其它函数或是从其它函数返回的一类函数,在C++中高阶函数是被实现为函数对象的。本文将会介绍几个用于处理函数对象的Boost C++库。 其中,Boost.Bind可替换来自C++标准的著名的 st原创 2011-07-25 20:57:13 · 4671 阅读 · 0 评论 -
回车('\r')和换行('\n'),坑爹的Windows
前段时间移植一个windows下的程序到vxWorks下,由于原程序要读取配置文件,所以我将它们一起放在了nor flash里,好不容易搞定了编译错误,一运行程序就出错,进去调试,发现读到的信息全是错的!!不会吧,细细一看,fopen读上来的字符串是这样的"First Line\原创 2011-07-16 08:38:53 · 2523 阅读 · 3 评论 -
信号(Signal)与槽(Slot)-Qt中的典型机制
因为下一篇关于Boost的文章会涉及到事件处理的问题,里面用的是信号和槽的机制,先拿Qt里的这个机制预研一下。诶,Boost这是够厉害的,什么先进就包含什么!要知道我以前一直以为这是Qt的专利呢。当然,这也是大多数厉害的开源软件库的高人之处,像Qt这种GUI库也包含了很多数据库,原创 2011-07-25 22:09:50 · 19110 阅读 · 6 评论 -
Boost学习系列3-函数对象(下)
四、Boost.Lambda 匿名函数 - 又称为lambda函数 - 已经在多种编程语言中存在,但 C++ 除外。 不过在Boost.Lambda库的帮助下,现在在 C++ 应用中也可以使用它们了。 lambda 函数的目标是令源代码更为紧凑,从而也更容易理解。 以本原创 2011-07-25 21:10:51 · 3053 阅读 · 0 评论 -
Boost学习系列2-智能指针(上)
一、概述最先讲的就是指针,这是C语言中,不少程序员害怕的东西,害怕的原因大多是因为不了解其初始化、调用、赋值和清除的方式,而智能指针则可以去除这个顾虑,在初始化时就已经预定了删除,排解了后顾之忧。1998年修订的第一版C++标准只提供了一种智能指针:std::auto_ptr,它原创 2011-07-21 21:27:37 · 4836 阅读 · 1 评论 -
Boost学习系列1-简介及基本用法
在做长字符串匹配、搜索的问题时,我想大家最先想到的应该就是使用正则表达式,简单、高效。而Boost的Regex库则是不得不提的,很早之前我就接触过了Boost的这个模块,也对Boost了解了一点点,只是觉得它很NB,没做深究。昨天在网上无意中看到了Highscore的Boost原创 2011-07-21 21:05:17 · 4131 阅读 · 2 评论 -
Boost学习系列2-智能指针(下)
3.5、弱指针 前面的几种智能指针在不同场合可以独立使用,然而,弱指针只有在配合共享指针使用时才会有意义,见下面例子:#include #include #include #include DWORD WINAPI reset(LPVOID p)原创 2011-07-21 21:56:42 · 7478 阅读 · 1 评论 -
算法的时间性能分析
算法的时间复杂度在PC机上开发可能关系不太大,但是到了嵌入式系统下,复杂度就变得很重要了,一个复杂度很高的程序会使得本来有限的资源变得更加拮据,本文系转载自longmans的网易博客,借此学习下复杂度的计算。 本文主要从四个方面分析算法的复杂度:一、算法耗费的时间和语句频度:原创 2011-07-21 20:10:13 · 4632 阅读 · 0 评论 -
GNU C中不为人知的特色:__attribute__机制
十一放假放的不亦乐乎啊,今天才静下来看看技术,偶然碰到了__attribute__,虽然之前在看Linux内核代码时见过很多次,但还是对它熟视无睹,罪过啊,下面的文章是从源码网上转载的,原文在这里:http://www.yuanma.org/data/2006/0625/arti原创 2011-10-07 18:20:27 · 25280 阅读 · 19 评论