C++ primer plus 高级
文章平均质量分 79
简书成研
求实求真,大气大为
展开
-
标准模板STL简介
先对模板和标准容器的入门需要大致了解(提供给像我这样得菜鸟吧) 个人觉得模板和标准容器无非就是提供重用性与通用性大致下面几个方面: 1 函数通用性:重载与模板 2 类通用性: 模板3:STL的容器可以分为以下几个大类: 一:序列容器, 有vector, list, deque, string.二 : 关联容器, 有set, multiset, map原创 2013-10-07 09:24:42 · 1150 阅读 · 0 评论 -
c/c++ (疑1)数组和指针
指针:很多人 都知道 指针是保存变量的地址,有时候想想还是挺迷惑的。数组:数组名实际就是一个地址,指向数组的首地址。疑问1 那么我如何使用指针来操作数组呢?int main(){ int arr[3]={3,5,9}; int *ptr1[3] = {nullptr}; int (*ptr2)[3] = &arr;//ok *ptr1 = &arr[0];/原创 2015-03-30 10:18:13 · 914 阅读 · 0 评论 -
c/c++(疑2) const extern
首先明白:声明与定义的区别 函数或变量在声明时,并没有给它实际的物理内存空间,它有时候可以保证你的程序编译通过, 但是当函数或变量定义的时候,它就在内存中有了实际的物理空间,如果你在编译模块中引用的外部变量没有在整个工程中任何一个地方定义的话, 那么即使它在编译时可以通过,在连接时也会报错,因为程序在内存中找不到这个变量!你也可以这样理解, 对同一个变量或函数的声明可以有多次,而定义只原创 2015-03-30 10:18:29 · 972 阅读 · 0 评论 -
c/c++(疑4) 指针数组和数组指针之间关系
指针数组和数组指针概述(数组指针(指向数组的指针)与指针数组(存放指针的数组))指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。数组指针:首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。认识指针数组和数组指针从内存方面分析原创 2015-05-08 11:49:40 · 2663 阅读 · 1 评论 -
c/c++(疑3) C语言指针与数组之间关系
c/c++ (疑1)数组和指针c/c++(疑2) const extern有了前面 两篇 基础,下面我们可以更深入的来介绍c/c++(疑3) C语言指针与数组之间关系1 概述(C语言指针与数组之间关系)指针就是指针,指针变量在32 位系统下,永远占4 个byte,其值为某一个内存的地址。指针可以指向任何地方,但是不是任何地方你都能通过这个指针变量访问到。原创 2015-04-08 08:55:13 · 1597 阅读 · 2 评论 -
C/C++ 高质量编程--动态内存传递疑问解析 2
高质量编程--动态内存传递疑问解析#include " stdafx.h " #include using namespace std; // ----------------------------------------------- void GetMemory1( char * p) { p = ( char * )mall原创 2014-02-11 21:22:41 · 1527 阅读 · 0 评论 -
C/C++ 高质量编程--动态内存传递疑问解析 1
高质量编程 :中指针高级部分遇到动态内存传递疑问解析总结:值传递:对于函数来说,值传递就是一个人来了,给你一些数据,你对数据处理。地址传递:地址传递就是你通过地址找到一个人,然后直接对这个人处理。引用传递:而引用传递就是你要直接对一个人进行处理,通过名字对人访问,但你不知道那个人叫什么,就先起个随便的名字。谁来了,他的别名就是这个名字。但通过这个别名对人处理有一些限制,相比原创 2014-02-11 19:19:13 · 1369 阅读 · 0 评论 -
C/C++ 局部类和嵌套类
主要参考资料:C++编程思想和 高质量编程 以及网络文章局部类局部类是指在函数中定义类。(c++不能在函数中定义函数。c++在类中定义的函数也就是成员函数。)这个类以及由它创建的对象,都局限在该函数作用域中;必须在类内实现所有的成员函数,不能拿到类外。因为函数是不可以嵌套定义的;若类内含有静态数据成员,必须在该函数外初始化;类内不可含有静态函数成员;类中不可使用包裹它的函数原创 2014-02-12 14:15:48 · 4475 阅读 · 1 评论 -
C/C++ 高质量编程--内存,二重指针,指针的高级使用解析 3
内存分配方式有三种:(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3) 从堆上分配,亦称动态内存分配。程序原创 2014-02-12 09:08:06 · 4130 阅读 · 0 评论 -
函数通用性之重载与(导出模板概念)
本小节主要是想通过重载来导出模板首先来熟悉几个概念的东西:1 什么是重写2 什么是重载 来个小总结吧:1 成员函数重载特征: a 相同的范围(在同一个类中) b 函数名字相同 c 参数不同 d virtual关键字可有可无2 重写(覆盖)是指派生类函数覆盖基类函数,特征是: a 不同的范围,分别位于基类和派生类中 b 函数原创 2013-10-08 21:36:44 · 1397 阅读 · 0 评论 -
使用标准模板库 (STL)之一
STLSTL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组。要点STL算法作为模板函数提供。为了和其他组件相区别,在本书中STL算法以后接一对圆括弧的方式表示,例如sort()。STL另一个重要特性是它不是面向对象的。为了具有足够翻译 2013-10-08 21:53:20 · 1297 阅读 · 0 评论 -
操作系统之进程管理
分析一下进程间的相互作用,即进程的互斥、同步与通信。 进程互斥是进程之间所发生的一种间接性相互作用,这种相互作用是进程本身所不希望的,也是运行进程感觉不到的。进程互斥既可能发生在相关的进程之间,也可能发生在不相关的进程之间。 几个概念需要了解: 共享变量:多个进程均需访问的变量称为共享变量。 临界区:访问共享变量的转载 2014-02-05 21:22:40 · 856 阅读 · 0 评论 -
使用标准模板库 (STL)之二
容器迭代器尽管C++指针也是迭代器,但用的更多的是容器迭代器。容器迭代器用法和iterdemo.cpp一样,但和将迭代器申明为指针变量不同的是,你可以使用容器类方法来获取迭代器对象。两个典型的容器类方法是begin()和end()。它们在大多数容器中表示整个容器范围。其他一些容器还使用rbegin()和rend()方法提供反向迭代器,以按反向顺序指定对象范围。下面的程序创建了一个矢量容器(翻译 2013-10-09 21:07:04 · 1008 阅读 · 0 评论 -
c/c++(疑5) 说了那么多,来试一试最简单的
#include #include void main(){ int arr[] = {1,3,5}; //一般数组赋值 int arr1[3]; for (int i =0; i < 3; i++) { arr1[i] = arr[i];//这个没什么好说的了 printf("arr1[i] =%d\n", arr1[i]); } //指针数组赋值 int *ar原创 2015-06-17 16:51:30 · 1061 阅读 · 1 评论