C/C++
coder马冬冬
这个作者很懒,什么都没留下…
展开
-
C++深拷贝与浅拷贝
C++深拷贝与浅拷贝 浅拷贝就是成员数据之间的一一赋值:把值赋给一一赋给要拷贝的值。但是可能会有这样的情况:对象还包含资源,这里的资源可以值堆资源,或者一个文件。。当值拷贝的时候,两个对象就有用共同的资源,同时对资源可以访问,这样就会出问题。深拷贝就是用来解决这样的问题的,它把资源也赋值一次,使对象拥有不同的资源,但资源的内容是一样的。对于堆资源来说,就是在开辟一片堆内存,把原来的内容拷贝。 如果你拷贝的对象中引用了某个外部的内容(比如分配在堆上的数据),那么在拷贝这个对象的时候,让新旧两个对象转载 2010-09-27 16:57:00 · 480 阅读 · 0 评论 -
c++一次输出单个中文字符和英文字符串
#include #include using namespace std; int main() { string str = "无str产ing阶级在斗争中失去的只是锁链!!"; string ch; bool e = false; for(size_t i = 0; i { if (str[i] {原创 2011-06-30 15:06:00 · 4778 阅读 · 1 评论 -
一次性读入文件全部内容
#include#includeusing namespace std;int main(){ filename = "test.txt"; filebuf fin; fin.open(filename.c_str(), ios::in); istream isInput(&fin); setlocale(LC_TYPE, ""); istreambuf_iterator bit(isInput), eit; string content(bit, e原创 2011-04-29 14:04:00 · 1583 阅读 · 0 评论 -
判断utf8编码字符是否为日文 或其它语言
//首先转成unicode编码, 根据编码大小可获得为那种语言,编码表请参考另一篇博客 #include #include #include #include using namespace std;int utf82u(char *str, int * chPtr) /* str is the UTF8 next character pointer */ /* chP转载 2011-06-13 22:56:00 · 6418 阅读 · 0 评论 -
gdb常用命令
命 令描 述file装入想要调试的可执行文件.kill终止正在调试的程序.list列出产生执行文件的源代码的一部分.next执行一行源代码但不进入函数内部.step执行一行源代码而且进入函数内部.run执行当前被调试的程序quit终止 gdbwatch使你能监视一个变量的值而不管它何时被改变.break在代码里设置断点, 这将使程序执行到这里时被挂起.make使你能不退出 gdb 就可以重新产生可执行文件.shell使你能不离开 gdb 就执行 UNIX shell 命令.如果main函数需要参数a b c原创 2011-04-17 22:21:00 · 572 阅读 · 0 评论 -
mutable violatile 关键字的用法
volatile用法:在c语言开发中,volatile关键字主要用在编写访问I/O端口或中断服务的程序中。这些程序可能改变某一内存单元或I/O端口的变量,而这些变量在其它程序中被使用。volatile关键字告诉编译器,任何时候都不要对变量的值进行假设,编译器不会为了快速存取而将变量的值存储在寄存器中,因为这样,内存中的值有可能与寄存器中不一致。程序如下面所示:int sample(int*flag){if(*flag==0){ DoSomething(); } DoAnotherThing();if(*fl转载 2011-04-11 23:13:00 · 1465 阅读 · 0 评论 -
去掉字符串左右两边空格
<br />string from = " hi from china ";<br />from.erase(from.find_last_not_of(' ') + 1, string::npos); <br />from.erase(0, from.find_first_not_of(' '));<br />cout << from << endl; // 输出"hi from china"原创 2011-04-05 19:59:00 · 679 阅读 · 0 评论 -
stringstream 的用法介绍
stringstream 主要有两个作用:简化类型转换和一次性读入数据:一、使用stringstream对象简化类型转换C++标准库中的提供了比ANSI C的更高级的一些功能,即单纯性、类型安全和可扩展性。在本文中,我将展示怎样使用这些库来实现安全和自动的类型转换。为什么要学习如果你已习惯了风格的转换,也许你首先会问:为什么要花额外的精力来学习基于的类型转换呢?也许对下面一个简单的例子的回顾能够说服你。假设你想用sprintf()函数将一个变量从int类型转换到字符串类型。为了正确地完成这个任务原创 2011-03-02 18:15:00 · 4569 阅读 · 1 评论 -
c++ vector中插入pair
我们知道map和multimap的作用,这两种数据类型在存储数据时,会根据pair的first成员进行排序,不同的时前者将不会插入对first成员重复的结构,后者可以。那如果我们只想存储pair对,而不需要对其排序,则需要用到vector,下面是vector的用法实例:#include#includeusing namespace std;int main(){ vector >VP; VP.push_back(make_pair(10,50)); VP.pus原创 2011-01-11 19:14:00 · 28776 阅读 · 1 评论 -
C++读写文件总结
在C++中如何实现文件的读写?一、ASCII 输出为了使用下面的方法, 你必须包含头文件(译者注:在标准C++中,已经使用取代,所有的C++标准头文件都是无后缀的。)。这是 的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, 已经被包含了, 所以你不必包含所有这两个文件, 如果你想显式包含他们,那随便你。我们从文件操作类的设计开始, 我会讲解如何进行ASCII I/O操作。如果你猜是"fstream," 恭喜你答对了! 但这篇文章介绍转载 2011-01-11 15:48:00 · 823 阅读 · 0 评论 -
C++:STL标准入门汇总
学无止境!!!第一部分:(参考百度百科) 一、STL简介STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和itera转载 2010-11-05 11:39:00 · 561 阅读 · 0 评论 -
C++中的map嵌套应用
最近开发中要STL,然后自己查看了一些资料,并写了一些代码。在使用中,想起了如果是map嵌套,该如何应用呢?下面是我的coding内容: 对于传统的map,我们只需要: #include #include int main() { map scores; scores.insert(make_pair(100,"maxi")); scores[100]="MAXI";原创 2010-12-04 22:44:00 · 21388 阅读 · 3 评论 -
C++中的四种强制类型转换的区别
此文于2010-11-29被推荐到CSDN首页如何被推荐?使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast、和const_cast。1 static_cast用法:static_cast ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类和子类之间指针或引用的转换。 进行上行转换(把子类的指针或引用转换成基类表示)是转载 2010-11-30 12:15:00 · 465 阅读 · 0 评论 -
vector 排序 去重 反向输出
#include #include #include #include using namespace std;int main() {vector Vector;Vector.push_back(100);Vector.push_back(100原创 2011-10-18 16:25:31 · 5068 阅读 · 1 评论