C-C++
cszh23333
这个作者很懒,什么都没留下…
展开
-
C++ STL vector 用法详解
介绍 vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。 本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间。其做法是,分配一个新的数组,然后将全转载 2017-10-07 18:16:22 · 258 阅读 · 0 评论 -
C++中delete和delete[]的区别
C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。请看下面的程序。#include <iostream>; using namespace std;class T {转载 2017-10-10 15:10:27 · 190 阅读 · 0 评论 -
C++:复制构造函数在什么时候被调用?
1、对象在创建时使用其他的对象初始化Person p(q); //此时复制构造函数被用来创建实例pPerson p = q; //此时复制构造函数被用来在定义实例p时初始化p2.对象作为函数的参数进行值传递时f(p); //此时p作为函数的参数进行值传递,p入栈时会调用复制构造函数创建一个局部对象,与函数内的局部变量具有相同的作用域需要注意的是,赋值并不会调用复制构造函数,赋值只是赋值运算符(重载)转载 2017-10-10 15:16:23 · 2199 阅读 · 0 评论 -
C++ 双向链表的实现
list.h#ifndef _LIST_H #define _LIST_Htypedef int DataType;class Node { private: DataType data; public: Node *next;//后驱指针 Node *prior;//前驱指针 Node(DataType val); ~Node(); DataType原创 2017-10-11 19:57:08 · 283 阅读 · 0 评论 -
C++ 顺序栈和链式栈的实现
stack.h#ifndef _STACK_H #define _STACK_H#include <vector>typedef int DataType;class Node { private: DataType data; public: Node *next; Node(DataType val); ~Node(); DataType get_data原创 2017-10-12 13:40:14 · 686 阅读 · 0 评论 -
C++ 双向队列链式实现和队列的顺序实现
双向队列采用双向链表实现dequeue.h#ifndef _DEQUEUE_H #define _DEQUEUE_Htypedef int DataType; class Node { private: DataType data; public: Node *next; Node *prior; Node(DataType val); ~Node();原创 2017-10-12 13:47:40 · 811 阅读 · 0 评论 -
ctime函数使用遇到的坑
今天在使用ctime函数遇到了一个问题,示例代码如下:char *date; //获取当前的时间 time_t now = time(NULL); date = ctime(&now); delete_crlf(date); //此函数是为了删除date的换行符 printf("%s\n", date);sleep(2); now = time(NULL); c原创 2017-11-13 16:01:43 · 2373 阅读 · 0 评论 -
函数指针
函数的类型由它的返回类型和形参类型共同决定,与函数名无关。比如: //乘法运算 int product(int u, int v) { return u*v; } 想要声明一个可以指向该函数的指针,只需要用指针替换函数名即可: int (*pf)(int, int);// 未初始化,这是一个声明,和int i;一样 函数指针的使用 当我们把函数名作为一个值使用时,该函数自动转换为...转载 2018-08-24 16:59:41 · 163 阅读 · 0 评论