自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Study_C++

C++高效、简洁,永久的选择。

  • 博客(60)
  • 资源 (4)
  • 收藏
  • 关注

原创 QT SQL链接

1、新建工程: 打开Qt Creator,File -> New File or Project,左边选择 Qt Widget Project,右边选择Qt Gui Application单击Choose;填写工程名称(这里是1)及选择目录-> Next -> Next -> Next -> Finish,工程顺利生成并自动回

2012-09-18 08:08:30 1028

原创 简易数据库

use Text --Text为数据库gocreate table student_table( --student_table为表 id_num int identity(1,1), num nvarchar(20), use_name nvarchar(20), constraint pk_student primary key clustered ( id_num AS

2012-09-09 15:04:43 966

原创 C/C++优秀书籍

《Imperfect C++中文版》《C++代码设计与重用》《C和指针》《C专家编程》《C陷阱与缺陷》《C++沉思录》《C++代码设计与重用》《Imperfect C++中文版》《C++面向对象高效编程(第2版)》《C++实践之路》《C和C++代码精粹》《C++编程惯用法——高级程序员常用方法和技巧》《C++编程风格》《软件艺匠》

2012-08-08 16:10:02 1395 2

转载 内存管理三

假设系统的可利用内存空间容量为2m个字(地址从0到2m-1),则在开始运行时,整个内存区是一个大小为2m的空闲块,在运行了一段时间之后,被分隔成若干占用块和空闲块。为了在分配时查找方便起见,我们将所有大小相同的空闲块建于一张子表中。每个子表是一个双重链表,这样的链表可能有m+1个,将这m+1个表头指针用向量结构组织成一个表,这就是伙伴系统中的可利用空间表,如图所示:

2012-08-04 10:08:38 1690

转载 内存管理二

发现两篇内存池的博文,博文地址如下,写的很好,能避免内存碎片和内存泄露问题,比我这个玩具代码要好很多,大家可以看看:http://www.cnblogs.com/bangerlee/archive/2011/08/31/2161421.htmlhttp://blog.csdn.net/060/article/details/1326025    在我们做

2012-08-04 10:07:55 1731 3

转载 内存管理一

今天突发奇想地想学习下内存管理(其实是报的腾讯终端开发,怕面试被问到如何实现内存管理模块)。于是找找资料,写了段代码,可以实现基于最佳适应法和循环首次适应法的内存分配。    大家都知道,我们malloc的时候操作系统维护着一张双链表记录堆里面的空闲内存块情况,每个节点对应一块内存。    最佳适应法:分配内存(大小为size)的时候,从表头开始搜索,找那块比size大的最小空闲内

2012-08-04 10:07:02 1450

原创 类的设计

一、构造函数:简单的类不需要构造函数,它们的结构就是它们的接口。复杂的类需要构造函数来隐藏它们内部工作方式。二、数据成员:数据成员应该设置为私有,通过共有接口来修改、读取私有成员变量。如:template class Vector{public: int get_length() const; int set_length();private: int length;}

2012-08-03 18:35:00 2895 3

原创 迭代器的类型及操作

迭代器:一、input(输入)迭代器:input迭代器只能一次一个向前读取元素,按此顺序一个个传回元素值。input迭代器的各项操作:*iter  读取实际元素iter->member  读取实际元素的成员++iter  向前步进,传回新位置iter++  向前步进,传回旧位置iter1 == iter2  判断两个迭代器是否相等TYPE(iter)  复制迭代

2012-07-29 16:48:25 4122

原创 STL应用实例

一、vector的简单应用#include #include int main(){ std::vector charVector; int x; for (x=0; x<10; ++x) charVector.push_back(65 + x); int size = charVector.size(); for (x=

2012-07-28 16:01:38 6114 1

原创 map应用实例二

将multimap当作字典#include#include#include#includeusing namespace std;void main(){ typedef multimap StrStrMMap; StrStrMMap dict; dict.insert(make_pair("day" , "Tag")); dict.insert(make_pair("

2012-07-26 16:10:56 1476

原创 STL set、multiset 学习笔记

一、set、multiset 的能力:set、multiset采用平衡二叉树完成,set中的元素不允许重复,multiset允许重复;set、multiset不提供直接存取元素的任何函数操作;通过iterator 进行元素简介存取,有一个限制:从迭代器角度来看,元素值是常数;二、set、multiset 的形式:set  一个set,以lessset一个set,以为排序

2012-07-25 15:41:50 4968

原创 单链表

#include #include typedef struct Student { int data; struct Student *next; }Node,*Link; void Display(Link L) { Node *p; p=L->next; printf("The result is:\n"); while(p) { printf

2012-07-23 11:09:19 995

原创 在treeWidget中加入控件

//在treeWidget中加入控件void Form::addSpaceF(){ //删除按钮分区 treeWidget->removeItemWidget(addSpace,0); newItem=new QTreeWidgetItem; addSpace=new QTreeWidgetItem; addPlate=new QTreeWidgetI

2012-07-20 10:04:05 5450

原创 容器的通用操作

ContType c产生一个未含任何元素的容器ContType c1(c2)产生一个同型容器ContType c(beg,end)复制[beg,end]区间内的元素作为初值C.~ContType ()删除所有元素,释放内存C.empty()判断容器是否为空

2012-07-10 15:44:58 1187 1

原创 vector学习笔记

一、vector的能力vector将其元素复制到内部的dynamic array中。元素之间总是存在着某种顺序。所以vector是一种有序群集,vector支持随机存取,因此只要知道位置,你可以在常数时间内存取任何一个元素。vector的迭代器是随机存取迭代器,对任何一个STL算法都可以奏效。二、vector的函数操作1、vector的构造函数和析构函数vector c

2012-07-10 15:22:31 1035

原创 C++标准库类型

一、命名空间的using声明using std::cin;using std::cout;using std::string;二、标准库string类型1、string的类型和初始化几种初始化string对象的方式string s1;默认构造函数,s1为空串string s2(s1);将s2初始化为s1的一

2012-07-10 15:21:25 700

原创 关联容器简介

关联容器1、sets:set的内部元素依据其值自动排序,每个元素值只出现一次,不允许重复。2、multiset:multiset和set相同,只不过它允许重复元素,也就是说multiset可包括多个数值相同的元素。3、maps:map的元素都是“实值/键值”所形成的一对对组。每个元素有一个键,是排序基准的基础。每一个键只出现一次,不允许重复。map可被视为关

2012-07-08 15:08:47 762

原创 C语言链表

#include#include#define null  0//--------定义节点---------typedef struct List{ int data; struct List* next;}List;//----------构造链表----------List* InitList(int n){  int i;  List *h

2012-07-06 16:35:28 721

原创 QT中各种MessageBox的使用

#include "messagebox.h"#include int main(int argc, char *argv[]){ QApplication a(argc, argv); MessageBox *w=new MessageBox; w->show(); return a.exec();}MessageBox.h#ifndef MESSAG

2012-06-10 17:55:12 5986 3

原创 C/C++中时间类time.h

关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)1.概念在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到 过C++语言中对时间的操作、获取和显示等等的问题。下面,在这篇文章中,笔者将主要介绍在C/C++中时间和

2012-05-13 17:55:47 1527

原创 C语言随机数的产生

#include#include#includevoid main(){int i,j;srand((int)time(0));//设置种子for(i= 0;i{j=1+(int)(10.0*rand()/RAND_MAX+1.0);//显示随机数printf("%d\t",j);}}

2012-05-13 17:11:48 660

原创 在C语言中,double、long、unsigned、int、char类型数据所占字节数

和机器字长及编译器有关系:所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的): 1 sizeof(short int)<=sizeof(int) 2 sizeof(int)<=sizeof(long int) 3 short int至少应为16位(2字节) 4 long int至少应为32位。 unsigned 是

2012-04-23 13:23:29 2305

原创 C++标准库类型

C++标准库类型--学习笔记 一、命名空间的using声明usingstd::cin;usingstd::cout;usingstd::string; 二、标准库string类型1、string的类型和初始化几种初始化string对象的方式string s1;默认构造函数,s1为空串string s2(s1

2012-04-16 19:58:21 2217

原创 C++变量与基本类型

C++变量与基本类型---学习笔记 一、    从键盘输入文件结束符Windows系统:control+Z;Unix、OS-X、Mac:control+D; 二、    基本内置类型算数类型表 类型含义最小存储空间取值范围bool布尔型-

2012-04-13 15:23:07 3665 2

原创 大学要点

C++标准库 TCP/IP设计模式QT类库

2012-04-12 17:27:13 728

原创 C++迭代器(iterator)

1. 迭代器(iterator)是一中检查容器内元素并遍历元素的数据类型。(1) 每种容器类型都定义了自己的迭代器类型,如vector:vector::iterator iter;这条语句定义了一个名为iter的变量,它的数据类型是由vector定义的iterator类型。(2) 使用迭代器读取vector中的每一个元素:vector ivec(10,1);for(vector

2012-04-11 22:38:48 911

原创 EXT JS学习网站

1、http://extjs.org.cn/ExtJS中文站2、http://www.verycd.com/topics/2744670/《EXTJS实用开发指南和官方中文教程》(LearningExtJS_new)[压缩包] 的下载地址3、http://www.easyjf.com/EasyJF开源4、http://tech.163.com/special/00091SV

2012-04-10 20:35:55 1127

原创 多继承中二义性的问题

假定通过多个派生路径继承名为x的成员,有下面三种可能性:1、如果每个路径中x表示同一虚基类成员,则没有二义性,因为共享该成员的单个实例。2、如果在某个路径中x是虚基类的成员,而在另一路径中x是后代派生类的成员,也没有二义性--特定派生类实例的优先级高于共享基类实例。3、如果沿每个继承路径x表示后代派生类的不同成员,则该成员的直接访问时二义性的。像非虚多重继承层次一样,这种二义性最好用在

2012-04-08 11:18:43 2183

原创 QTreeWidget的使用

1.基本用法:初始化用基本用到的://this->setMouseTracking(true);this->setRootIsDecorated(false);this->setSelectionMode(QAbstractItemView::ExtendedSelection);this->setStyleSheet("QTreeWidget::item{height:2

2012-04-07 19:32:07 3090 1

翻译 QTableWidget的使用

一.初始化void init(){setRowCount(1);//设置一行setColumnCount(2);  //设置两列int row = rowCount();removeRow(row);//清除已有的行列setShowGrid(true);//显示表格线verticalHeader()->setVisible(false);//隐藏左边垂直QHea

2012-04-07 10:17:07 2973

原创 相关书籍

《深入理解计算机系统》《windows高级调试》《windows via C/C++》《计算机组成原理》《操作系统》《汇编语言程序设计》《深度探索C++对象模型》《C++沉思录:Ruminations on C++》《C和C++经典著作:C陷阱和缺陷》

2012-04-06 13:17:09 787

原创 C++纯虚函数与抽象类

纯虚函数:纯虚函数:在基类中将某一成员函数定为虚函数,并不是基类本身的需要,而是考虑到派生类的需要,在基类中预留了一个函数名,具体功能留给派生类根据需要去定义。纯虚函数是在声明虚函数时被“初始化”为0的函数。一般形式为:virtual 函数类型 函数名(参数列表)=0;如:virtual float area()const=0;注意:1、虚函数没有函数体;2

2012-04-06 11:28:03 4056

原创 C++虚函数学习笔记(仅供参考)

1、虚函数的作用:允许在派生类中重新定义与基类同名的函数,并且可以通过基类的指针或引用来访问基类和派生类中的同名函数。2、虚函数的工作原理编译器处理虚函数的方法:对每个对象添加一个隐藏成员。隐藏成员中保存了一个指向函数地址数组的指针,这种数组称为虚函数表(vtbl)。虚函数表中存储了为类对象进行声明的虚函数的地址。例如:基类对象包含一个指针,该指针指向基类中所有虚函数的地址表。

2012-04-05 21:56:22 1377

原创 QTextBrowser的一些设置

ui->textBrowser->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//设置垂直滚动条不可见ui->textBrowser->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//设置水平滚动条不可见 QTextCursor text_cursor(ui->t

2012-04-01 21:04:32 14103 1

原创 Qt4.6 QMessageBox 使用大全

使用方式为/***消息框的使用 *********************///提示框//QMessageBox::about(this,"about me","helloworld");// QMessageBox::aboutQt(this,"about me");  //输出关于Qt的详细信息//警告窗口//int bs=   QMessageBox::critica

2012-03-28 21:16:57 2178

原创 QT文本编码

字符集简史   在所有字符集中,最知名的可能要数被称为ASCII的7位字符集了。它是美国信息交换标准代码(American Standard Code for Information Interchange)的缩写, 为美国英语通信所设计。它由128个字符组成,包括大小写字母、数字0-9、标点符号、非打印字符(换行符、制表符等4个)以及控制字符(退格、响铃等)组成。  但是,由于他是针

2012-03-27 20:35:38 922

转载 QTableWidget的运用

QTableWidget可以顯示一個表格元件,表格中每個儲存格則為一個QTableWidgetItem的實例,QTableWidgetItem要安插至表格中哪個儲存格,則是依索引的指定來決定。    下面的程式碼為簡單的QTableWidget與QTableWidgetItem的示範:  使用setItem()時必須指定儲存格索引值,索引為列(row)行(c

2012-03-19 16:34:47 1001

原创 QTableWidget的使用和美工总结

基本外观设置FriendTable->setFrameShape(QFrame::NoFrame);//设置边框FriendTable->setHorizontalHeaderLabels(HeadList);设置表头FriendTable->setSelectionMode(QAbstractItemView::SingleSelection);设置选择的模式为单选择

2012-03-19 16:11:58 1207

原创 获取本机IP地址的方法:

#include  QString getIPAddress()  {  QString ipAddress;      QList ipAddressesList = QNetworkInterface::allAddresses();     for (int i = 0; i < ipAddressesList.size(); ++i) {

2012-03-16 19:07:21 958

原创 QT如何实现后台运行(即最小化到右下角托盘)

第一期: 用hello world简单的代码更容易看懂托盘的具体实现,一些细节问题,比如为什么提示消息没有显示在托盘上,如何在tip消息上增加图标等。#include class myclass: public QWidget{ public:         myclass(); private:         QPushButton *b1;

2012-03-13 22:11:24 9423

ubuntu13.04下qt5的安装及使用

Ubuntu刚刚发布了13.04版,我就在这个环境下尝试配置Qt5的开发环境,并记录下来,给有同样需要的朋友作为参考。

2013-08-18

QT开发者会议1.1

QT各个行业的使用,以及各个模块的简介。帮助大家了解QT的发展,以及掌握以后QT、C++发展的趋势

2012-03-17

C++标准库的学习

讲述C++标准库中各种函数,对C++学习者有莫大帮助。 例:其中一个函数为: #line line_number "filename" #line命令是用于更改__LINE__ 和 __FILE__变量的值. 文件名是可选的. __LINE__ 和 __FILE__ 变量描述被读取的当前文件和行. 命令 #line 10 "main.cpp" 更改行号为10,当前文件改为"main.cpp".

2011-11-24

川大 数据结构

讲述各种经典实例,川大内部教材.经常被各大著名高校作为师范教材。对数据结构进阶有很大的帮助

2011-11-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除