c++
文章平均质量分 65
DQZQ
这个作者很懒,什么都没留下…
展开
-
MFC的第一个程序
MFC的第一个程序: #include #include long APIENTRY wndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) ; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance原创 2013-05-15 16:35:38 · 227 阅读 · 0 评论 -
c++ 利用signals/slots方式重写Observer模式
#include #include using namespace std; void func1() { std::cout << "Hello world" << std::endl; } struct Func{ void operator()(){ cout<<"in obj "<<endl; } }; int main() { boost::signals2::s原创 2013-09-07 11:30:34 · 417 阅读 · 0 评论 -
阿里巴巴2013/5/19第十八题的感想
http://blog.csdn.net/knuth_tang/article/details/8971257 题目:宿舍内有五个童鞋一起玩对战游戏,每场比赛有一些人作为红方,另外一些人作为蓝方,请问至少需要多少场比赛才能使得任意两个人之间有一场红方对蓝方和一场蓝方对红方的比赛,请写出思路。 分析:更具一般性而言,舍有n个人玩对战游戏好喽,要使得任意两个人之间都发生过两种关系(虽然不雅,这转载 2013-09-12 16:10:29 · 1554 阅读 · 0 评论 -
c++生产者和消费者问题
利用boost库: #include class buffer{ private: mutex mu; condition_variable_any cond_put; condition_variable_any cond_get; stack stk; int un_read,capacity; bool is_full(){ return un_read==ca原创 2013-10-10 09:34:23 · 398 阅读 · 0 评论 -
c++读者写者问题
利用boost库: class rw_data{ private: int m_x; shared_mutex rw_mu; public: rw_data():m_x(0){} void write(){ unique_lock ul(rw_mu); ++m_x; } void read(int* x){ shared_lock sl(rw_mu); *原创 2013-10-10 09:35:13 · 856 阅读 · 0 评论 -
linux c++ 的几种编程技巧
一:能否有类内部可读可写,而外部只能读的数据成员? class CLStatus { public: CLStatus::CLStatus(long lReturnCode, long lErrorCode) : m_clReturnCode(m_lReturnCode), m_clErrorCode(m_lErrorCode) { m_lReturnCode =原创 2013-08-31 19:21:11 · 257 阅读 · 0 评论 -
c++ boost 序列化对象存储及其访问
参照下面的例子就可以完成。 #include #include #include #include using namespace std; using namespace cv; using namespace std; struct IvNode { friend class boost::serialization::access; te原创 2013-12-13 18:34:57 · 326 阅读 · 0 评论 -
qt学习例子
#include "mainwindow.h" #include #include #include #include #include int main(int argc, char *argv[]) { QApplication app(argc, argv); // QPushButton *btn=new QPushButton("quit"); // QObject原创 2014-01-15 16:39:04 · 288 阅读 · 0 评论 -
SQLAPI的入门学习
参考网址: #include "stdafx.h" #include #include #include "SQLAPI.h" using namespace std; #pragma comment(lib,"sqlapi.lib") int main() { SAConnection conn; try{ conn.Connect("test","root","root",原创 2014-08-03 15:41:47 · 1289 阅读 · 0 评论 -
c++ 对象池的使用
下面是使用boost库的对象池: #include #include #include #include #include using namespace std; using namespace boost; class Test{ public: Test(int _data):data(_data){} void show(){cout<<data<<endl;} private原创 2013-09-07 10:23:08 · 318 阅读 · 0 评论 -
c++ 判断两个类之间的继承关系
#include template struct IsDerivedFrom { class No {}; class Yes { No no[2];}; static Yes test(B* pb); static No test(...); public: enum { Is = sizeof(test(static_cast(0))) == sizeof(Yes) }; };原创 2013-09-01 21:22:32 · 630 阅读 · 0 评论 -
用异或来交换两个变量能提高速度是错误的
原文分析:http://blog.csdn.net/solstice/article/details/5166912 我写的测试程序: void exchange(int& a,int& b) { int tmp=a; a=b; b=tmp; } void exchange2(int& a,int& b) { a=a^b; b=a^b; a=原创 2013-09-06 23:29:33 · 338 阅读 · 0 评论 -
c++ 二进制文件的读写,只用一个字节保存整数
用bitset作为中介。 代码: ofstream binfile("F:/Holidays/experiment/test/binfile.bin",ios::binary|ios::out|ios::trunc); vector ivec; int count=0; for(unsigned i=0;i<128;++i){ binfile.write((char*)&i,原创 2013-05-14 15:18:06 · 317 阅读 · 0 评论 -
以boost::function和boost:bind取代虚函数
http://blog.csdn.net/Solstice/archive/2008/10/13/3066268.aspx 我也是不喜欢继承和虚函数的,耦合度太大,我喜欢STL,boost,CGAL风格的C++。我经常使用的是template, 仿函数,用编译期的多态替代虚函数(见effective c++ 条款41 了解隐式接口和编译期多态)。 例如 template struct Ex转载 2013-05-29 12:36:46 · 222 阅读 · 0 评论 -
CRTP方法来达到静态多态
crtp模式: // The Curiously Recurring Template Pattern (CRTP) template class Base { // methods within Base can use template to access members of Derived }; class Derived : public Base {原创 2013-05-29 09:21:30 · 291 阅读 · 0 评论 -
c++读取一个文件夹下所有txt文件
#include #include #include int main(){ DIR* dir; struct dirent * p; dir=opendir("E:\\Test\\tmp"); while((p=readdir(dir))!=NULL){ string s(p->d_name); if(s.length()>4&&s.substr(s.length()-原创 2013-06-04 16:01:32 · 535 阅读 · 1 评论 -
c++ 几个容易混淆的问题闲谈
问题一:一直以为纯虚函数没有定义,但是也可以有定义。例如: class Base{ public: virtual void vrun()=0; }; void Base::vrun(){ cout<<"in base"<<endl; } class Derived:public Base{ public: void vrun(){原创 2013-06-01 17:01:53 · 225 阅读 · 0 评论 -
c++表达式模板
来源:http://blog.csdn.net/dbzhang800/article/details/6693454 Qt从4.6开始,引入了一个QStringBuilder的内部类 在QString的Manual中,你可以找到关于它的简单介绍 在 String concatenation with QStringBuilder有详细介绍 这个类主要使用了一个被称为表达式模板(Ex转载 2013-07-03 00:06:24 · 263 阅读 · 0 评论 -
c++ pimpl模式 桥接模式
利用shared_ptr: #include #include #include #include #include using namespace std; using namespace boost; int fun(int x,int y){return x+y;} class sample{ private: class impl; shared_ptr p; pub原创 2013-08-06 20:03:06 · 362 阅读 · 0 评论 -
一个c++模板程序
template struct Example { template void process(WFunc func) { func("abc"); } void process() { m_func("abc"); m_writer.write("abc"); } WriteFunc m_func; Writer m_writer; }; struct Writ原创 2013-09-06 22:25:03 · 306 阅读 · 0 评论 -
windows mutex waitforsingleobject
example: #define THREAD_INSTANCE_NUMBER 3 LONG g_fResourceInUse = FALSE; LONG g_lCounter = 0; HANDLE hMutex; DWORD ThreadProc(void *pData) { int ThreadNumberTemp = (*(int*)pData); Wa原创 2014-08-04 11:08:01 · 317 阅读 · 0 评论