C++
文章平均质量分 58
glp_hit
IT菜鸟
展开
-
C++ 泛型算法之 replace 和 replace_copy
replace算法:对输入序列做读写操作,将序列中特定值替换为新值。relplace的四个参数:一对指定范围的迭代器和两个值,把第一个值替换为第二个值。#include replace(ilst.begin(), ilst.end(), old_val, new_val); //把所有old_val值替换为new_val这个调用将所有old_val替换为new_val。如果不想改变原创 2012-10-30 15:23:24 · 2374 阅读 · 0 评论 -
C++ sort() 与stable_sort()
sort的应用;1、可以传入两个参数; sort(a,a+N) ,其中a是数组,a+N表示对a[0]至a[N-1]的N个数进行排序(默认从小到大排序);2、传入三个参数; sort(a,a+N,cmp) cmp第三个参数是一个函数 ; 如果让函数从大到小排序,可以用如下算法实现;bool cmp(int a,i原创 2012-10-25 20:21:48 · 2909 阅读 · 0 评论 -
C++ equal_range() 函数
函数原型:#include pair equal_range( forward_iterator first, forward_iterator last, const TYPE& val ); pair equal_range( forward_iterator first, forward_iterator last, const TYPE& val, CompFn comp );原创 2012-10-25 20:50:49 · 12547 阅读 · 1 评论 -
用C++ ulxmlrpcpp 做服务端,PHP xmlrpc 做客户端,实现前后xml通信
前一阵,想在fedora下用C++服务程序,PHP前台程序,实现一个系统。选择封装完整HTTP协议通信,且实现多线程的程序库:ulxmlrpcpp。但是这个库只封装c++的客户端和服务端,所以决定在客户端使用PHP xml-rpc。然而两个库并不能完全通信,需要修改一些源码(只修改ulxmlrpcpp代码,所以需要重新编译ulxmlrpcpp,而phpxmlrpc不需要修改)。1.程序下载转载 2012-10-31 14:35:56 · 9631 阅读 · 0 评论 -
error: expected constructor, destructor, or type conversion before '.' token
最近的工程中出现一个错误,error: expected constructor, destructor, or type conversion before '.' token ,纠结了很久,终于找到原因,还是自己c++基本功不好,犯了低级错误,此处写下来,给自己警示!!!C++中,全局阈只能声明、初始化变量; 不能用于赋值、运算、调用函数等!!!关于初始化和赋值:(感谢mon原创 2013-03-04 19:04:10 · 71722 阅读 · 6 评论 -
C++ const 和 static 用法
static 是c++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因、作用谈起,全面分析static 修饰符的实质。static 的两大作用:一、 控制存储方式:static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间。1、引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函转载 2013-04-02 10:50:18 · 986 阅读 · 2 评论 -
强符号 弱符号
本文的主要内容包括符号指的是什么?为什么要存在强符号,弱符号,什么是强引用、弱引用,它们的作用是什么?最后介绍链接器的COMMON块机制(Common Block)。一、符号----链接的接口:在链接过程这种,目标文件之间相互拼合实际上是目标文件之间对地址的引用,即对函数和变量地址的引用。在链接中,我们将函数和变量统称为符号(Symbol),函数名或变量名就是符号名(Symbol Name原创 2013-04-11 19:36:31 · 3824 阅读 · 0 评论 -
动态链接 静态链接
本文主要内容:什么是动态链接、静态链接?静态链接、动态链接的优缺点是什么?1. 什么是静态链接、动态链接静态链接:静态链接是由链接器在链接时将库的内容加入到可执行程序中的做法。链接器是一个独立程序,将一个或多个库或目标文件(先前由编译器或汇编器生成)链接到一块生成可执行程序。动态链接(Dynamic Linking):相对于静态链接而言,要等到程序运行时再将组成程序的目标文件进行链接的原创 2013-04-17 22:24:16 · 1155 阅读 · 2 评论 -
C++ replace() 函数用法详解
本文主要针对c++中常用replace函数用法给出样例程序/*用法一: *用str替换指定字符串从起始位置pos开始长度为len的字符 *string& replace (size_t pos, size_t len, const string& str); */int main(){ string line = "this@ is@ a test string!"; lin原创 2013-04-17 19:30:28 · 65485 阅读 · 9 评论 -
char[] 与 char *区别
我们让:char* a ="aaa" char a[] = "bbb"1. 赋值阶段不同char a[] 是在运行时赋值char* a 在编译时确定的2. 存取效率char a[] 读取时直接把字符串中元素读到寄存器char *a 要先读指针值,然后从指针中读取字符,显然慢得多3. 数据类型不同数组可以自动转换为指针,而指针不能转成数组字符串等价于字符数原创 2013-05-17 22:21:01 · 1209 阅读 · 5 评论 -
面向对象的三个基本特征(讲解)
面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下转载 2013-06-28 14:31:55 · 751 阅读 · 0 评论 -
c++ substr()和assign()函数用法
C++中substr()函数用法substr(起始位置,长度);#include#includeusing namespace std;main(){string s("12345asdf");string a=s.substr(0,4); //获得字符串s中 从第0位开始的长度为4的字符串cout<<a<<endl;}运行结果1234assign()原创 2012-10-25 21:25:22 · 12097 阅读 · 0 评论 -
C++ 字符串拆分函数: split() 替换字符函数: replaceAll()
split()vector split(const string& src, string separate_character){ vector strs; int separate_characterLen = separate_character.size();//分割字符串长度,这样就可以支持多字 符串的分隔符 int lasePosition = 0, ind原创 2012-10-25 20:15:29 · 7782 阅读 · 1 评论 -
C++ fill() fill_n() back_inserter 简析
fill 和fill_n函数是C++ Primer第十一章泛型算法部分内容,并把它们称为写入元素算法,也就是说这两个函数只能对输入范围内已存在的元素进行写入操作。如果试图对空容器进行fill_n操作,会导致严重的运行错误,所以在对元素进行写入操作时要检查目标的大小是否足以存储要写入的元素。fill函数的作用是:将一个区间的元素都赋予val值。函数参数:fill(vec.begin(), vec原创 2012-10-25 20:43:47 · 4018 阅读 · 1 评论 -
C++泛型算法之 sort() stable_sort() unique() count_if()
首先我们定义要用到的vector:vector words; words中存储十个元素分别是一下十个单词: the quick red fox jumps over the slow red turtlesort 算法:带有两个迭代器实参,之处要排序的元素范围,使用小于(sort(words.begin(), words.end());排序后结果:fox jumps over q原创 2012-10-30 16:29:26 · 2281 阅读 · 0 评论 -
C++ atoi() itoa() 字符串-数字相互转换函数
它们都是C语言中原有的字符串转换函数,C++自然将他们加进来。用之前C++引入头文件:#include 或者 #include atoi原型:注意:参数若为string类型一定转换成char*型(str.c_str())#include 或者#includeint atoi(const char *str); atoi作用:把str字符串转换成整型数。如果第一个非空格字符不原创 2012-10-31 09:16:44 · 3305 阅读 · 0 评论 -
Linux环境 C++ Boost 安装
1. Boost 下载 进入 Boost 官网 http://www.boost.org/ 下载boost,我下载的版本是 1.51.0 boost_1_51_0.tar.gz2. Boost 解压 我选择的解压目录是: /usr/share/ #tar -zxvf boost_1_51_0.tar.gz 如果下载的是boost_1原创 2012-10-25 09:21:02 · 644 阅读 · 0 评论 -
C++ string类中 .c_str() 和 .data() 区别
二者用法大体一样,区别在于一点:.c_str() 是生成以‘\0’结束的字符串;.data() 生成的字符串没有‘\0’;转载 2012-10-25 20:58:56 · 7485 阅读 · 0 评论 -
C++ 箭头操作符(->) 和 点操作符(.)
一个左边是指针. 一个左边是实体如果p是指针, p->function(); 如果p是对象, p.function();记住-〉必须是指针,.左边必须是对象或者结构体,一般是类对象比如:容器的迭代器iteriter->function() = (*iter).function();原创 2012-10-25 21:03:28 · 802 阅读 · 0 评论 -
C++ 调用ICTCLAS接口(Linux环境)
1. 下载ICTCLAS包,解压,放到主程序目录。(以ICTCLAS50_Linux_RHAS_32_C(20120703)为例)2. 解压后的四个文件夹分别是API:我们程序中调用的接口 Doc:两篇说明文档 Demo:windows下系统演示 Sample:Linux下的系统样例 可以根据其中的.cpp程序写自己的main函数,参照样例原创 2012-10-25 09:29:55 · 1536 阅读 · 0 评论 -
C++ 去掉字符串首尾空格
void strim(string &str){str.erase(str.find_last_of(' ') + 1, string::npos); //去掉字符串末尾空格str.erase(0, str.find_first_of(' ')); //去掉字符串首空格}原创 2012-10-25 20:19:01 · 7697 阅读 · 4 评论 -
c++ 读写文件程序
我的第一个入门C++程序,感谢官山同学对我在C++方面的耐心引导,这将成为我在编程方面的一个里程碑式的开始!#include #include #include using namespace std;int main(){ifstream readfile;readfile.open("c:\\1.txt",ios::in);string line;int start=原创 2012-10-25 21:07:36 · 904 阅读 · 0 评论 -
C++ map容器 按照value值排序
正常的map默认按照key值排序,而map又没有像vector一样的sort()函数,那么如果将map按照value值排序呢?有两种方法:方法1. 将map中的key和value分别存放在一个pair类型的vector中,然后利用vector的sort函数排序,其中map_verb存放我的map值:存放我的map值:#includetypedef原创 2012-10-25 10:46:20 · 14445 阅读 · 3 评论 -
七种排序算法,包括:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序
说明:源码来自作者:http://my.csdn.net/monsion 转载请联系作者!!!main.cpp#include "allSort.h"#include "allSort.cpp"using namespace std;int main(){ //在int上测试 int a[]={3,2,6,7,1,9}; allSort iTest; iTest.i原创 2013-09-04 21:39:27 · 1786 阅读 · 0 评论