上一页 1 ··· 5 6 7 8 9 10 11 12 下一页
摘要: 二叉树看到线索二叉树就翻不动了,准备学一个简单地查找-二分查找。二分查找思想就是每次查找范围缩半,范围怎么缩的半?,我们通过改变数组的下标上限值或下限值来完成的,我们来看代码:int binary_search (int *a,int n,int key){ int low=0; int height = n; int mid=n/2; while(low <= height) { mid = (low + height)/2; if(a[mid]<key) //使下限的值接近中间值 ... 阅读全文
posted @ 2013-03-10 18:18 onlycxue 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 最近有了大把的时间,学习了数据结构,在大学的时候就接触过数据结构,在现在那时只不过是为了考一个二级证,那时的概念只是背,但是一直不理解解,还好,我打算重走这段历史。回归正题:二叉树的概念二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(成为空二叉树),或者由一个节点和两棵不互相交的,分别称为根节点的左子树和右子树的二叉树组成。二叉树的特点每个结点最多有两棵子树左右子树是有顺序的,不能颠倒的即使子树只有一个结点,也要区分它是左子树还是右子树。特殊二叉树斜树 所有的结点都只有左子树的二叉树叫做左斜树。所有结点都只有右子树的二叉树叫做右斜树。这样二叉树的结点数与树的深度有关。 2. . 阅读全文
posted @ 2013-03-10 12:33 onlycxue 阅读(1309) 评论(0) 推荐(0) 编辑
摘要: extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般之包括函数名。 这个功能十分有用处,因为在C++出现以前,很多代码都是C语言写的,而且很底层的库也是C语言写的,为了更好的支持原来的C代码和已经写好的C语言库,需要在C++中尽可能的支持C,而extern 阅读全文
posted @ 2013-02-19 09:44 onlycxue 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 成员函数的重载、覆盖与隐藏成员函数的重载、覆盖(override)与隐藏很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。8.2.1 重载与覆盖成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual 关键字。示例8-2-1 中,函数Base::f(int)与Base::f(float)相互重载,而Base::g(void)被Derived::g(void)覆 阅读全文
posted @ 2013-02-03 15:36 onlycxue 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 三种访问权限public:可以被任意实体访问protected:只允许子类及本类的成员函数访问private:只允许本类的成员函数访问三种继承方式public 继承protect 继承private 继承组合结果基类中 继承方式 子类中public & public继承 => publicpublic & protected继承 => protectedpublic & private继承 = > privateprotected & public继承 => protectedprotected & protected继承 => protectedprotecte 阅读全文
posted @ 2013-02-03 09:15 onlycxue 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public: ClxBase() {};virtual ~ClxBase() {};virtual void DoSomething() { cout << "Do something in class ClxBase!" << endl; };};class ClxDerived : public ClxBase{public: ClxDerived() {};~ClxDerived( 阅读全文
posted @ 2013-02-01 17:12 onlycxue 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 友元函数和友元类的需要: 类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开销,而影响程序的运行效率。 为了解决上述问题,提出一种使用友元的方案。友元是一种定义在类外部的普通函数,但它需要在类体内进行说明,为了与该类的成员函数加以区别,在说明时前面加以关键字friend。友元不是成员函数,但是它可以访问类中的私有成员。友元的作用在于提高程序.. 阅读全文
posted @ 2013-01-23 08:39 onlycxue 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 向comboBox部件里添加元素QStringList string; string<<"高"<<"低"; ui->comboBox->addItems(string);个人理解这也是Qt的MVC模型的体现,QStringList是装载数据的model,当然comboBox就是view怎么获取comboBox里的数据呢,可以这样ui->textEdit->setText(string[ui->comboBox->currentIndex()]); 阅读全文
posted @ 2013-01-22 13:55 onlycxue 阅读(5917) 评论(0) 推荐(0) 编辑
摘要: dynamic_cast: 通常在基类和派生类之间转换时使用,run-time castconst_cast: 主要针对const和volatile的转换.static_cast: 一般的转换,no run-time check.通常,如果你不知道该用哪个,就用这个。reinterpret_cast: 用于进行没有任何关联之间的转换,比如一个字符指针转换为一个整形数。1)static_cast<T*>(a)编译器在编译期处理将地址a转换成类型T,T和a必须是指针、引用、算术类型或枚举类型。表达式static_cast<T*>(a), a的值转换为模板中指定的类型T。在运 阅读全文
posted @ 2013-01-21 16:11 onlycxue 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 1 static_cast用法:static_cast < type-id > ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类和子类之间指针或引用的转换。 进行上行转换(把子类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成子类表示)时,由于没有动态类型检查,所以是不安全的。②用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。③把空指针转换成目标类型的空指针。④把任何类 阅读全文
posted @ 2013-01-21 11:26 onlycxue 阅读(237) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 下一页