c++
文章平均质量分 65
frozen_flash
这个作者很懒,什么都没留下…
展开
-
boost unordered map 小试
为了将之前代码的hash_map更改为boost的unordered_map,查找了一些资料。最后添加了iequal_to 和ihash两个方法才得以没有做大的改动。 struct key_cmp_fun{ bool operator()(const char *p1,const char *p2) const { return (0x00 == strcmp(p1,原创 2013-07-10 14:11:50 · 976 阅读 · 0 评论 -
二叉树基本操作
#include #include #includeusing namespace std;//输入 "abdh..i..ej...cf..g.."typedef struct Node{ char data; struct Node *left; struct Node *right;}*pNode;//建立二叉树void create_tree(pNode &p原创 2013-08-28 13:07:37 · 671 阅读 · 0 评论 -
根据二叉树前序/中序结果,建立二叉树
例如:在一棵二叉树总,前序遍历结果为:ABDGCEFH,中序遍历结果为:DGBAECHF,求后序遍历结果。我们知道:前序遍历方式为:根节点->左子树->右子树中序遍历方式为:左子树->根节点->右子树后序遍历方式为:左子树->右子树->根节点从这里可以看出,前序遍历的第一个值就是根节点,然后再中序遍历中找到这个值,那么这个值的左边部分即为当前二叉树的左子树部分前序遍历结果,这个值原创 2013-08-28 14:55:31 · 885 阅读 · 0 评论 -
单链表排序
#include#includeusing namespace std;typedef struct Node{ int val; Node* next;}*pNode;void print_list(pNode head){ pNode tmp = head; while(tmp) { std::coutval<<" "; tmp = tmp->next;原创 2013-08-27 13:51:14 · 730 阅读 · 0 评论 -
单链表反转
#include#includeusing namespace std;typedef struct Node{ int val; Node* next;}*pNode;void print_list(pNode head){ pNode tmp = head; while(tmp) { std::coutval<<" "; tmp = tmp-原创 2013-08-27 11:06:31 · 728 阅读 · 0 评论 -
编译WEBRTC
Before you startFirst, be sure to install the prerequisite software.The currently supported platforms are Windows, Mac OS X, and Linux.Getting the code and buildingCreate a working directo转载 2013-09-22 21:17:10 · 862 阅读 · 0 评论 -
关于IOCP那些事
HTTP Server design with I/O Completion Ports encompases:I/O Completion port queueThread PoolsWindows Sockets (WinSock)Asynchronous socket read/writeAsynchronous file read/write Buffer Memo转载 2013-09-24 23:36:57 · 1498 阅读 · 0 评论 -
c算法100例
【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;ifor(j=1;jfor (k=1;k{转载 2013-09-25 20:47:03 · 901 阅读 · 0 评论 -
关于ICE通信的一张截图
这是ICE的简单示例的wireshark截图示意图,从中可以简单的了解ice两端通信的大概过程和步骤原创 2013-10-10 16:52:04 · 832 阅读 · 0 评论 -
当mmap遇到sigbus
今天遇见程序出现sigbus的问题。仔细查看了程序的源码,应该没什么逻辑问题。程序每次运行到memcpy(&sum_cnt,addr,data_len)的时候就sigbus了~真是奇怪啊,查看了addr不为空。addr使用的是文件映射之后得到的内存地址:如下:map_addr 就是映射之后所得。bool scan_mapfile(char* file_path, c原创 2013-11-04 15:09:11 · 1639 阅读 · 0 评论 -
三角矩阵一则
#include#include#include#includeusing namespace std;void show_msg(int* arr, int size, int max_line){ int ts = 0x00; for(int index = 0x00; index < max_line; index++) { int tmp = max_line;原创 2014-03-20 17:10:02 · 766 阅读 · 0 评论 -
螺旋数组小计
#includeusing namespace std;#include #define M 11 void show(int arr[][M], int i, int js, int size) { for(int index = 0x00; index < size; index++) { for(int j = 0x00; j < size;j++) std:原创 2014-03-24 13:09:16 · 707 阅读 · 0 评论 -
一个epoll多进程服务器示例
#include#include#include#include#include#include#include #include#include #include#include#include#include#include #include #include#include #include #includeusing namespace std;#原创 2014-03-25 15:49:09 · 945 阅读 · 0 评论 -
二叉树遍历
#include #include #includeusing namespace std;typedef struct Node{ char data; struct Node *left; struct Node *right;}*pNode;//建立二叉树void create_tree(pNode &pRoot){ char ch; scanf("%c",&原创 2013-08-27 16:48:16 · 754 阅读 · 0 评论 -
坑爹的NLS_LANG
这两天搞OCI开发,程序部署在linux上,插入中文从sqlplus客户端查询出来一直是乱码,但是通过sqlplus插入中文再查询,中文显示是正常的。网上搜罗了很久,在linux上设置了很多lang,比如export LANG=zh_CN.GBK ,export LANG=zh_CN.UTF8等等,无奈一直不行啊。网上说,要oracle服务器和客户端的字符集显示要一致。关于客户端这个词,看原创 2013-08-23 09:55:05 · 1262 阅读 · 0 评论 -
boost property_tree遍历
#include #include #include #include #include using namespace std; using namespace boost;using namespace boost::property_tree;void printTree(ptree root){ BOOST_FOREACH(ptree::value_原创 2013-07-24 09:57:28 · 4049 阅读 · 0 评论 -
zlib 库解压文件(windows)
#include "stdafx.h"#include "zlib.h"#include #include using namespace std; #pragma comment(lib,"zdll.lib")size_t get_fsize(Byte*& buf_out, unsigned int all_size){ ifstream in("h:\\qt\\hello.z原创 2013-07-24 10:08:46 · 1492 阅读 · 0 评论 -
boost iostreams 压缩文件
#include#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace boost;using n原创 2013-07-24 10:04:53 · 3211 阅读 · 3 评论 -
获取音视频文件播放时长
long get_au_len(std::string fname){ IGraphBuilder *pGB = NULL; IMediaPosition *pMP = NULL; REFTIME m_Total = 0; CoInitialize(NULL); CString wFile = convert_string_ex(fname); HRESULT rets = CoC原创 2013-07-24 15:04:15 · 2383 阅读 · 0 评论 -
摘录 protobuf
// Example usage://// Say you have a message defined as://// message Foo {// optional string text = 1;// repeated int32 numbers = 2;// }//// Then, if you used the protocol compile翻译 2013-07-25 17:36:06 · 1083 阅读 · 0 评论 -
ZMQ PULL/PUSH exercise
/******************************************************************************************** push | | _____________|______________ | | | |原创 2013-07-25 17:59:59 · 1803 阅读 · 0 评论 -
OCI连接池
#ifndef __OCI__LIB__POLL__#define __OCI__LIB__POLL__#include "ocilib.h"#include #include #include using namespace std;class OraConnPool{protected: OraConnPool(); public: int createCon原创 2013-08-02 10:14:16 · 2739 阅读 · 0 评论 -
gbk - utf8 转换函数
std::string Utf8ToGBK(const std::string& strUtf8){std::string ret_data = "";int len=MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)strUtf8.c_str(), -1, NULL,0); unsigned short * wszGBK = new unsigned short[l原创 2013-08-02 09:52:57 · 1166 阅读 · 0 评论 -
curl http上传文件
//回调函数 static size_t write_data_upav( void *buffer, size_t size, size_t nmemb, void *userp) { int segsize = size * nmemb; if ( g_resp_upav_index + segsize > MAX_BUF_SIZE ) { *(int *)u原创 2013-08-02 10:00:51 · 9030 阅读 · 0 评论 -
文件映射类---VC
class CFileMap { HANDLE m_hFile; HANDLE m_hMap; DWORD m_Size; //文件长度,以字节计 BYTE* m_Buf; //文件的内存映射区 DWORD m_FilePosAlign; //映射的文件偏移 bool m_ReadOnly; DWORD m_mapsi原创 2013-08-02 10:08:19 · 1012 阅读 · 0 评论 -
OCI 批量数据操作
#include "ocilib.h"#include#includeusing namespace std;std::string get_last_error(){ char buffer[512] = {0x00}; OCI_Error *err = OCI_GetLastError(); sprintf(buffer, "oci: errorcode: %d, errm原创 2013-08-20 15:42:21 · 2438 阅读 · 0 评论 -
OCI 获取嵌套sql语句数据
#include "ocilib.h"int main(void){ OCI_Connection *cn; OCI_Statement *st; OCI_Resultset *rs; if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT)) return EXIT_FAILURE; c原创 2013-08-21 17:08:40 · 1031 阅读 · 0 评论 -
epoll多进程回显服务器示例
#include#include#include#include#include#include#include #include#include #include#include#include#include#include #include #include#include #include #include#include#includeusing原创 2014-03-26 14:01:03 · 870 阅读 · 0 评论