2011年3月6日
摘要: 指针是个很强大的工具,可是正因为它太强大,所以要操作它不是件易事。操作不当造成的野指针,甚至会引起系统死机等比较严重的后果。 如果程序定义了一个指针,就必须要立即让它指向一个我们设定的空间或者把它设为NULL,如果没有这么做,那么这个指针里的内容是不可预知的,即不知道它指向内存中的哪个空间(即野指针),它有可能指向的是一个空白的内存区域,可能指向的是已经受保护的区域,甚至可能指向系统的关键内存,如果是那样就糟了,也许我们后面不小心对指针进行操作就有可能让系统出现紊乱,死机了。所以我们必须设定一个空间让指针指向它,或者把指针设为NULL,这是怎么样的一个原理呢,如果是建立一个与指针相同类型的空. 阅读全文
posted @ 2011-03-06 16:22 飘浮的旋律 阅读(198) 评论(0) 推荐(0) 编辑
  2011年2月26日
摘要: #include //STL 通用算法#include //STL 位集容器#include #include #include #include #include //复数类#include #include #include #include #include //STL 双端队列容器#include //异常处理类#include #include //STL 定义运算函数(代替运算符)#include #include //STL 线性列表容器#include //STL 映射容器#include #include //基本输入/输出支持#include //输入/输出系统使用的前置声 阅读全文
posted @ 2011-02-26 15:53 飘浮的旋律 阅读(130) 评论(0) 推荐(0) 编辑
  2011年2月23日
摘要: 容器的出现是为创建和管理大量,数目未知的对象。这点区别于数组,数组是为了创建和管理大量,已知数目的数据。所以容器使用起来可以更加灵活。之所以有这样的好处,是因为容器的实现,用了链表等更灵活的存储结构。而在面向对象的语言里面,它们都是以类的形式出现的。也就是说,你创建了一个容器类的对象,那就可以使用这个容器类内部所带有的方法来操纵数据。每一个容器类都实现了迭代器的接口,因为他们有取其中数据的这样的需求。所以迭代器是一种解决通用问题的一种方式,所以可以把迭代器归结为是一种设计模式。参考阅读:http://www.cnblogs.com/weichsel/archive/2010/09/14/182 阅读全文
posted @ 2011-02-23 16:06 飘浮的旋律 阅读(273) 评论(0) 推荐(0) 编辑
  2011年2月21日
摘要: #include using namespace std;int main(){ const size_t s=5;//定义数组长度; int ai[]={0,2,4,6,8};//初始数组; cout<<"原始数组:"<<endl; for(int *pb=ai,*pe=pb+s;pb!=pe;pb++)//输出检验原始数组; cout<<*pb<<"\t"; for(int *pb=ai,*pe=pb+s;pb!=pe;pb++)//将数组原始值改为0; *pb=0; cout<<endl; cout<<"把元素设 阅读全文
posted @ 2011-02-21 14:19 飘浮的旋律 阅读(90) 评论(0) 推荐(0) 编辑
摘要: //编写代码修改指针的值,再重写代码修改指针指向的对象的值。#include using namespace std;int main(){ int i=10; int j=12; int *p=&i; //修改指针的值 cout<<"未修改前指针p的值:"<<*p<<"未修改指针p前p所指对象的值:"<<i<<endl; p=&j; cout<<"修改后指针p的值:"<<*p<<"修改指针p后指针p所指对象的值:"<<i<<endl; //修改指针指向的对象的值 /*cou 阅读全文
posted @ 2011-02-21 14:19 飘浮的旋律 阅读(124) 评论(0) 推荐(0) 编辑
摘要: //编写程序定义一个有10个int型元素的数组,并以其在数组中的位置作为各元素的初值。#include using namespace std;int main(){ const size_t s=10;//定义数组长度; int a[s];//定义整型数组a; for (size_t i=0;i!=s;i++)//给数组a赋值; a[i]=i+1; for (int j=0;j!=i;j++)//输出数组a的各个元素值; cout<< "数组a有"<<i<<"个元素,其中第"<<j+1<<"个元素值为:"<<a[j] 阅读全文
posted @ 2011-02-21 14:19 飘浮的旋律 阅读(86) 评论(0) 推荐(0) 编辑
摘要: #include #include using namespace std;int main(){ //定义迭代器; vector v1; vector v2; vector::size_type s=10; int j; int i=0; //向迭代器V1写入数据; cout>j; v1.push_back(j); } //向迭代器v2写入数据; cout>j; v2.push_back(j); } //比较迭代器v1与v2是否相等; for(vector::iterator it1=v1.begin(),it2=v2.begin();it1!=v1.end(),it2!=v 阅读全文
posted @ 2011-02-21 14:18 飘浮的旋律 阅读(252) 评论(0) 推荐(0) 编辑
摘要: #include using namespace std;int main(){ int a1[]={2,4,6,8,10,12,14,16,18,20,22,24,26}; const size_t s=13; int a2[s]; /*for (size_t k=0;k!=s ;k++ ) { cout<<a2[k]<<"\t"; if ((k+1)%5==0) cout<<endl; }*///考查数组a2的初始情况; for (size_t i=0;i!=s;i++) a2[i]=a1[i];//实现复制; for (int j=0;j!=s;j 阅读全文
posted @ 2011-02-21 14:17 飘浮的旋律 阅读(107) 评论(0) 推荐(0) 编辑
摘要: #include #include using namespace std;int main(){ int i; vector v; vector v1; cout>i) v.push_back(i); for (vector::size_type ix=0;ix!=v.size();ix++) v1.push_back(v[ix]);//实现复制; for(int j=0;j!=v1.size();j++)//检验复制是否成功; { cout<<v1[j]<<"\t"; if((j+1)%5==0) cout<<endl; } return 阅读全文
posted @ 2011-02-21 14:17 飘浮的旋律 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 1.把C++当成一门新的语言学习(和C没啥关系!真的。);2.看《Thinking In C++》,不要看《C++变成死相》;3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看;4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;6.会用Visual C++,并不说明你会C++;7.学class并不难,template、STL、g 阅读全文
posted @ 2011-02-21 14:16 飘浮的旋律 阅读(189) 评论(0) 推荐(0) 编辑