随笔分类 -  C/C++

摘要:最有效的办法就是用std::remove(); std::remove_if()算法。。。。。别用for循环来删除。。。。。很容易出错。 阅读全文
posted @ 2011-12-20 21:39 小 楼 一 夜 听 春 雨 阅读(231) 评论(0) 推荐(0)
摘要:BOOL CMFCProjectApp::InitInstance(){ .... int ret = 0; FILE* fp; AllocConsole(); ret = _open_osfhandle((long)GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT); fp = _fdopen(ret, "w"); *stdout = *fp; setvbuf(stdout, NULL, _IONBF, 0);}只要将上面的函数加到初始化的地方之后,就可以使用printf输出数据到console了,... 阅读全文
posted @ 2011-12-14 10:38 小 楼 一 夜 听 春 雨 阅读(3745) 评论(0) 推荐(1)
摘要:3.list容器中删除元素的方法 对于list容器,由于list本身有remove和remove_if的成员函数,所以最好优先考虑list自己的算法,对于remove函数,比较简单,不再讨论,对于remove_if函数,本人发现在vc6.0中有重大问题。我试了多种函数对象,总是编译不过,通过查看源代 阅读全文
posted @ 2011-12-11 00:20 小 楼 一 夜 听 春 雨 阅读(711) 评论(0) 推荐(0)
摘要:2.使用 STL 中通用算法或容器成员函数删除元素的方法 以上手工编写 for 循环代码删除容器中元素的方法也有一些问题,如果判断条件特别复杂,又有循环判断的话,循环中间又有异常处理的话, ++itVect 的位置就要小心放置了,稍不留意就要出错。所以手工编写代码删除容器中元素的方法不太安全,代码重 阅读全文
posted @ 2011-12-11 00:11 小 楼 一 夜 听 春 雨 阅读(319) 评论(0) 推荐(0)
摘要:在 STL (标准模板库)中经常会碰到要删除容器中部分元素的情况,本人在编程中就经常编写这方面的代码,在编码和测试过程中发现在 STL 中删除容器有很多陷阱,网上也有不少网友提到如何在 STL 中安全删除元素这些问题。本文将讨论编程过程中最经常使用的两个序列式容器 vector 、 list 中安全 阅读全文
posted @ 2011-12-10 22:32 小 楼 一 夜 听 春 雨 阅读(696) 评论(0) 推荐(0)
摘要:需求:屏幕上显示字体的时候,若字数过多需要分行显示(分2行),第一行和第二行各占一半的字符。 由于带显示的字符串为const char* pText = "..."; 其中包含有中文,标点符号,英文,数字等等,其中中文用2个字节来表示,其他用1个字节表示。若直接根据这个字符的长度分隔成2部分的话有可 阅读全文
posted @ 2011-12-07 15:01 小 楼 一 夜 听 春 雨 阅读(389) 评论(0) 推荐(1)
摘要:http://blog.csdn.net/feimashenhua/article/details/6654995 STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque); 另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用eras 阅读全文
posted @ 2011-12-06 23:24 小 楼 一 夜 听 春 雨 阅读(513) 评论(0) 推荐(0)
摘要:先声明:下面的文章是针对windows的用法,因为std::map的erase函数的windows的实现版本是返回一个std::map的迭代器,但是STL标准里面的该函数的返回值确是: map.erase有3个重载:void erase ( iterator position );size_type 阅读全文
posted @ 2011-12-06 21:36 小 楼 一 夜 听 春 雨 阅读(62291) 评论(4) 推荐(6)
摘要:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 19 阅读全文
posted @ 2011-12-02 16:43 小 楼 一 夜 听 春 雨 阅读(109007) 评论(2) 推荐(3)
摘要:void CMFCProjectView::OnTestTest() { std::vector<CString> v; TraverseDir(CString("F:\\HGUI\\HGUI"), v); #ifdef _UNICODE wofstream ofs; #else ofstream 阅读全文
posted @ 2011-11-22 14:22 小 楼 一 夜 听 春 雨 阅读(17444) 评论(1) 推荐(0)
摘要:traverse_dir.h #ifndef TRAVERSE_DIR_H #define TRAVERSE_DIR_H #include <vector> #include <string> using namespace std; #ifdef _WIN32 #include <io.h> #i 阅读全文
posted @ 2011-11-22 11:08 小 楼 一 夜 听 春 雨 阅读(3163) 评论(0) 推荐(0)
摘要:void AnalyzeStr2Number(vector<int>& v, const string& str, const std::string& separator) { v.clear(); if (str.empty()) return; std::string strTmp; int 阅读全文
posted @ 2011-11-21 15:40 小 楼 一 夜 听 春 雨 阅读(593) 评论(0) 推荐(0)
摘要:http://stdsoft.blogbus.com/logs/56348472.html #pragma once #include <fstream> #include <string> #include <iostream> using namespace std; // Archive Fl 阅读全文
posted @ 2011-11-19 00:19 小 楼 一 夜 听 春 雨 阅读(458) 评论(0) 推荐(0)
摘要:在map中插入元素 改变map中的条目非常简单,因为map类已经对[]操作符进行了重载 enumMap[1] = "One";enumMap[2] = "Two";..... 这样非常直观,但存在一个性能的问题。插入2时,先在enumMap中查找主键为2的项,没发现,然后将一个新的对象插入enumM 阅读全文
posted @ 2011-11-16 17:20 小 楼 一 夜 听 春 雨 阅读(20289) 评论(0) 推荐(1)
摘要:很多时候程序的 Debug 版本运行没有任何问题,但是一旦发布 Release 版本后,运行就出错,着实让人郁闷。大家知道,VC++ 中 Release 版本是对无法对源代码进行调试的。一般的做法是在怀疑有错误的代码前后插入MessageBox 函数,在函数中显示可能导致错误的变量的值。或者插入写文 阅读全文
posted @ 2011-11-14 17:13 小 楼 一 夜 听 春 雨 阅读(12089) 评论(0) 推荐(0)
摘要:分为istream和ostringstream. 1 std::string name("zeta");2 int age = 27;3 4 ostringstream os;5 os << "name:"<<name<<""<<"age:"<<age<<endl;6 cout<<os.str()< 阅读全文
posted @ 2011-11-06 10:58 小 楼 一 夜 听 春 雨 阅读(28460) 评论(2) 推荐(6)
摘要:1. if else 嵌套深度128,可以改用switch case语句。 2. 项目中的各种配置数据可以写到一个config.h config.cpp的单体中。 阅读全文
posted @ 2011-11-02 10:36 小 楼 一 夜 听 春 雨 阅读(192) 评论(0) 推荐(0)
摘要:1.引言 下面的委托实现使用的MyGUI里面的委托实现,MyGUI是一款强大的GUI库,想理解更多的MyGUI信息,猛击这里http://mygui.info/ 最终的代码可以在这里下载:http://download.csdn.net/detail/gouki04/3641328 我们的目标是要实 阅读全文
posted @ 2011-10-31 16:13 小 楼 一 夜 听 春 雨 阅读(5187) 评论(1) 推荐(1)
摘要:http://blog.csdn.net/gouki04/article/details/6796173 typeid可以获取到一个对象或引用的确切类型,这在多态编程下非常有用。要使用typeid,首先确保你的编译器开启了运行时类型检查(RTTI)。在visual studio中打开该项目的"属性页 阅读全文
posted @ 2011-10-31 16:05 小 楼 一 夜 听 春 雨 阅读(547) 评论(0) 推荐(0)
摘要:limits.h专门用于检测整型数据数据类型的表达值范围。 <limits.h>主要提供对整型和字符型范围的限制的宏,同样没有指定类型和函数的定义。 1、整型宏如下表: 2、字符型宏如下表: 针对不同的编译器,编程可以实现为程序选择正确的类型。例如: #if INT_MAX>=10000 typed 阅读全文
posted @ 2011-10-31 14:31 小 楼 一 夜 听 春 雨 阅读(4292) 评论(1) 推荐(1)