代码改变世界

C++管理指针成员

2012-08-24 16:29 by javaspring, 230 阅读, 0 推荐, 收藏, 编辑
摘要:1、C++中一般采用下面三种方法之一管理指针成员: (1)指针成员采取常规行为。这样的类具有指针的所有缺陷:具有指针成员且使用默认复制构造函数和赋值操作符,无法避免悬垂指针(两个对象的指针成员指向同一内存,删除了其中一个指针指向的内存时,另一个指针将不再指向有效的内存空间)。 (2)类可以实现所谓的"智能指针"行为。引入计数类,智能指针类将一个计数器与类的对象相关联。使用计数跟踪该类有多少个对象共享同一指针。当计数为0时,删除对象。 (3)类采取值行为。采用重载的复制构造函数、赋值操作符和析构函数。2、指针成员采取常规行为示例:两个指针指向同一块内存,会引起不可预料的后果# 阅读全文

C++顺序容器vector、deque、list

2012-08-24 15:08 by javaspring, 373 阅读, 0 推荐, 收藏, 编辑
摘要:1、容器元素类型 C++中大多数数据类型可以作为容器的元素类型。容器元素类型必须满足一下两个条件:支持赋值和复制操作。 所以没有元素是引用类型的容器,同时IO对象和auto_ptr也不能作为容器的元素类型。2、vector容器的自增长 vector容器中存储的元素在内存中是连续存储的。假如容器中没有空间容纳新元素,此时由于元素必须连续存储以便索引访问,所以不能在内存中随便找个地方存储这个新的元素,于是vector必须重新分配空间,用于存放原来的元素和新添加的元素:存放在旧容器中的元素被复制到新的容器中,接着插入新的元素,最后撤销旧的存储空间。为了使vector容器实现快速的内存分配,其实际分配 阅读全文

获取窗口句柄

2012-08-24 12:26 by javaspring, 2349 阅读, 0 推荐, 收藏, 编辑
摘要:1、使用FindWindow函数获取窗口句柄示例:使用FindWindow函数获取窗口句柄,然后获得窗口大小和标题,并且移动窗口到指定位置。#include <Windows.h> #include <stdio.h> #include <string.h> #include <iostream.h> int main(int argc, char* argv[]) { //根据窗口名获取QQ游戏登录窗口句柄 HWND hq=FindWindow(NULL,"QQ2012"); //得到QQ窗口大小 RECT rect; Ge 阅读全文

2012年8月24日学习笔记---程序员面试宝典--循环、递归和概率

2012-08-23 22:14 by javaspring, 206 阅读, 0 推荐, 收藏, 编辑
摘要:程序员面试宝典之输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序,即输出125,126,145,146 #include <iostream> #include <string.h> #include <list> using namespace std; list<int>list_num; char p[10]="abdbcc"; char q[10]="abc"; void findLink(int i,int j) { if(!p[i]||!q[j]) retur 阅读全文

vs2008使用技巧推荐

2012-08-23 19:55 by javaspring, 141 阅读, 0 推荐, 收藏, 编辑
摘要:VS2008技巧,非常实用,非常提高效率。1,Visual Studio 2008自带的1000多个 Windows 系统使用的各种图标、光标和动画文件在Visual Studio 2008的安装目录下,\Microsoft Visual Studio 9.0\Common7\VS2008ImageLibrary\2052文件夹下面,有一个VS2008ImageLibrary.zip,这个文件里面将常用的Windows系统图标、光标和动画文件集中到了一起。包括Office、Win9x、WinVista和WinXP等系统使用的,可以免费使用哦。2,删除多余的using指令,并且排序当我们新一个类 阅读全文

C/C++内存分配

2012-08-23 17:09 by javaspring, 194 阅读, 0 推荐, 收藏, 编辑
摘要:1、c/c++内存分配1、栈区:由编译器自动分配和释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区:一般由程序员分配和释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事。3、全局(静态)数据区:全局变量和静态变量的存储是放在一块的。初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。4、文字常量区:常量字符串存放在这里,程序结束后由系统释放。5、程序代码区:存放函数体的二进制代码。2、下面是一段实际说明的代码#include "stdafx.h" #include < 阅读全文

MTK笔试面试题集锦

2012-08-23 14:47 by javaspring, 636 阅读, 0 推荐, 收藏, 编辑
摘要:1,若有 unsigned char *p1; unsigned long *p2; p1=(unsigned char *)0x1000; p2=(unsigned long *)0x2000;请问 p1+5=();p2+5=()上面的p1与p2指向两个十六进制地址,所以:p1+5=(unsignedchar *)0x1101;p2+5=(unsignedchar *)0x2005;下面介绍一下计算机进制之间转换的方法:一、二进制转换十进制例:二进制 “1101100” 1101100 ←二进制数 6543210 ←排位方法 例如二进制换算十进制的算法: 1*26 + 1*25 + 0*24 阅读全文

POJ 3352 Road Construction 无向图割边 + 缩点

2012-08-23 13:04 by javaspring, 180 阅读, 0 推荐, 收藏, 编辑
摘要:来源:http://poj.org/problem?id=3352题意:在一个岛上有一些旅游景点,旅游景点之间有路。当施工的时候,若一条路在施工,则这条路是不能走得。问至少还需要增加多少条路,能够保证在施工的时候,任意两个旅游景点之间仍然是可通的。思路:其实就是一个无向图割边 + 缩点的问题。这样考虑,在一个无向图中,如果一条边是割边,则如果这条边在施工,就会产生不可到达的点。因此可以缩点,缩点后,如果一个点的度为1,说明到达该点的路径只有一条,因此需要增加一条边。也就是说,如果能够保证题目中的条件,则应该在缩点后,任意两个点之间有两条路径可达。所以,若缩点后有n个度为1的点,则应该增加(n+ 阅读全文

多线程二 多线程中的隐蔽问题揭秘

2012-08-23 11:12 by javaspring, 220 阅读, 0 推荐, 收藏, 编辑
摘要:上一篇《多线程一 CreateThread与_beginthreadex本质区别》中讲到一个多线程报数功能。为了描述方便和代码简洁起见,我们可以只输出最后的报数结果来观察程序是否运行出错。这也非常类似于统计一个网站每天有多少用户登录,每个用户登录用一个线程模拟,线程运行时会将一个表示计数的变量递增。程序在最后输出计数的值表示有今天多少个用户登录,如果这个值不等于我们启动的线程个数,那显然说明这个程序是有问题的。整个程序代码如下:#include <stdio.h> #include <process.h> #include <windows.h> volat 阅读全文

JSP公用分页模块+数字分页

2012-08-23 11:08 by javaspring, 1336 阅读, 0 推荐, 收藏, 编辑
摘要:JSP公用分页模块+数字分页我的博客 http://blog.csdn.net/yjflinchong 转发请注明来源!<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <c:if test="${web.page!=null}"& 阅读全文
上一页 1 2 3 4 5 6 7 ··· 63 下一页