c++-顺序栈的成员函数问题

问题描述

顺序栈的成员函数问题
析构函数
~SeqStack( ) {delete[ ]elements;}
函数体中删除的是头指针还是删除了数组?

解决方案

删除的是数组。

时间: 2024-12-09 14:27:12

c++-顺序栈的成员函数问题的相关文章

顺序栈入栈时输入入栈元素回车之后不能够运行,需要再输入个字节才能运行。预计主函数存在问题。

问题描述 顺序栈入栈时输入入栈元素回车之后不能够运行,需要再输入个字节才能运行.预计主函数存在问题. #include #include #define MAXSIZE 100 //顺序栈的存储空间的初始分配量 #define SElemType int typedef struct { SElemType *base; SElemType *top; int stacksize; } SqStack; //栈的初始化 void InitStack(SqStack *S) { S->base=(

c++-顺序栈中的清空栈的函数

问题描述 顺序栈中的清空栈的函数 清空栈函数函数体中为何另top=-1,就可清空栈,栈的数据元素不还在内存里吗?怎么能算清空 解决方案 数据虽然还在原来的位置没有消失,但是已经不属于栈的管理范围了 解决方案二: 数组实现的数据还在,在计算机中很多时候都是这样的思想,top= -1就表示了栈已经为空了.比如说当我们删除一个文件时我们直接删除文件的索引,就认为这个文件删除了,但文件的本身的内容并没有删除. 解决方案三: 看你是怎么实现的堆栈,如果是数组,这么做就可以了.如果是动态分配的空间,这么做会

利用Thunk让C++成员函数变回调函数

Windows API经常需要回调函数,而在C++开发中面向对象当行其道,若能让C++类的成员函数成为回调函数,简直就是大善!但是C++成员函数都隐含了一个this指针用于指向当前的对象.要实现回调确实不容易. 我大约一年前就接触到Thunk技术,甚至也看过利用Thunk实现将成员函数变成回调函数的例子.但是我实在没了解过C++汇编后的样子,很容易钻了牛角尖,看都看不懂,直接用他们的程序又不敢,毕竟出错后不好处理.前端时间偶尔想起Thunk技术,对未懂技术老这样悬着很可能影响自己的程序员生涯的,

成员函数指针与高性能的C++委托 (Member Function Pointers and the Fastest Possible C++ Delegates)

标准C++中没有真正的面向对象的函数指针.这一点对C++来说是不幸的,因为面向对象的指针(也叫做"闭包(closure)"或"委托(delegate)")在一些语言中已经证明了它宝贵的价值.在Delphi (Object Pascal)中,面向对象的函数指针是Borland可视化组建库(VCL,Visual Component Library)的基础.而在目前,C#使"委托"的概念日趋流行,这也正显示出C#这种语言的成功.在很多应用程序中,&qu

c++-顺序栈中的重载操作<<

问题描述 顺序栈中的重载操作<< template osrtream& operator<<(ostream& os,SeqStack&s){ os<<"top="<<s.top<<endl; for(int i=0;i<=s.top;i++) os<<i<<":"<<s.elements[i]<<endl; return os;

【C/C++学院】0819-/类的成员函数与const-mutable /构造与析构/拷贝构造deletedefault以及深浅拷贝/静态成员函数成员变量类在内存的存储默认参数/友元类以及友元函数

类的成员函数与const-mutable  成员函数 Fushu.h #pragma once #include <iostream> class fushu { public: int x; int y; public: fushu(); ~fushu(); void show(); inline void showall(int x, int y);//显式内联 void setxy(int x, int y);//编译器优化,默认隐式内联 void show(int x, int y);

C++对象布局及多态实现之成员函数的调用

从这部分开始我们除了利用内存的信息打印来进行探索外,更多的会通过跟踪和观察编译器产生的汇编代码来理解编译器对这些语言特性的实现方式.汇编方面知识的讨论超出了本文的范围,我只对和我们讨论相关的汇编代码进行解析.理解本文要讨论的知识并不需要有很完整的汇编知识,但必须了解起码的概念. 下面我们看看引入虚继承后的影响.为了有所对比我们首先看看普通成员函数的调用情况. 执行如下代码,它包括了对象的普通成员函数调用,类的静态成员函数调用.通过指针调用普通成员函数: C010 obj;PRINT_OBJ_AD

小菜一步一步学数据结构之(五)顺序栈

定义 只能在表的一端(栈顶)进行插入和删除运算的线性表 逻辑结构 一对一关系 存储结构 用顺序栈或链栈存储均可,但以顺序栈更常见 运算规则 只能从栈顶运算,且访问结点时依照后进先出(LIFO)或后进后出(FILO)的原则 实现方法 关键是编写入栈和出栈函数,具体实现依顺序栈或链栈的不同而不同 基本操作 入栈 出栈 读栈顶元素值 建栈 判断栈满 栈空 栈与一般线性表的区别 栈是一种特殊的线性表,它只能在表的一端(栈顶)进行插入或删除运算 ** 一般线性 表 栈 逻辑结构 一对一 一对一 存储结构

(一二八)比较成员函数、中括号表示法、静态成员函数

有比较函数是strcmp (参数1, 参数2)   参数是两个字符串,所在头文件是<string>   比较方法是按顺序依次比较参数1和参数2的第一个字符(看ASCII值). 假如相同,则比较下一个: 假如参数1的比参数2的大,则返回1(正数): 假如参数1的比参数2的小,则返回-1(负数): 假如两个字符串完全一样,则返回0.   其原理是(这个我自己写的): int strcmp(const char* a, const char* b) { while (*a == *b) { if (