C++程序设计 基础编程抽象与算法基础
文章平均质量分 60
自学
琉璃色的星辉
这个作者很懒,什么都没留下…
展开
-
C++ 动态内存管理
一、动态分配与堆整个内存空间被设置为堆和栈,他们以相反的方向增长堆:向更高地址增长栈:向更低地址增长1. new操作符使用new操作符从堆中分配内存,形式是:取一种类型,并在堆中分配一块空间给所指定的类型变量。如:int* p = new int;2. 动态数组...原创 2021-02-24 23:10:18 · 69 阅读 · 0 评论 -
【转载】C++中sort函数使用注意事项
sort(first_pointer,first_pointer+n,cmp)该函数可以给数组,或者链表list、向量排序。实现原理:sort并不是简单的快速排序,它对普通的快速排序进行了优化,此外,它还结合了插入排序和推排序。系统会根据你的数据形式和数据量自动选择合适的排序方法,这并不是说它每次排序只选择一种方法,它是在一次完整排序中不同的情况选用不同方法,比如给一个数据量较大的数组排序,开始采用快速排序,分段递归,分段之后每一段的数据量达到一个较小值后它就不继续往下递归,而是选择插入排序,如果递归的转载 2021-02-15 10:58:40 · 259 阅读 · 0 评论 -
C++ 集合类
文章目录一、vector 类1.指定vector基类型2. 声明vector对象及其操作二、使用步骤1.引入库2.读入数据总结一、vector 类1.指定vector基类型 vector<int> vector<char> vector<string> 尖括号内的类型称为基类型,包含基类型规格说明的类在面向对象中被称之为参数化的类,c++中参数化的类通常被称为模板2. 声明vector对象及其操作 vector<int> a.原创 2021-01-22 21:32:19 · 3999 阅读 · 0 评论 -
C++ 递归策略
一、汉诺塔问题1.问题描述有a、b、c三个塔柱,8个圆盘在塔柱a上,大小随高度增加而减小,将8个圆盘从塔柱a移动到塔柱b,遵循以下规则:每次只移动一个圆盘不允许将大圆盘移动到小圆盘之上2.问题框架在用递归解决此问题时,递归程序应包含以下参数:需要移动圆盘数量开始的塔柱名字最终所在的塔柱名字临时储存圆盘的塔柱名字据此得到如下函数原型:void moveTower(int n, char start, char finish, char tmp);3.递归策略...原创 2021-02-01 20:51:40 · 189 阅读 · 0 评论 -
【转载】C++中list,vector,deque,map,set区别、联系和使用场景
一、Vector:动态数组vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随机存取,即[]操作符,但由于它的内存空间是连续的,所以在中间进行插入和删除会造成内存块的拷贝,另外,当该数组后的内存空间不够时,需要重新申请一块足够大的内存并进行内存的拷贝。这些都大大影响了vector的效率。(中间插入和删除效率低)二、List:双向链表list就是数据结构中的双向链表(根据sgi stl源代码),因此它的内存空间可以是不连续的,通过指针来进行数据的转载 2021-02-01 11:14:15 · 648 阅读 · 0 评论 -
C++ 递归简介
一、递归实现的效率如果不能采用很好的方法,递归实现相较于用迭代实现相同功能的效率更差,计算机可能会多次进行冗余的计算调用。所以需要观察能否用更巧妙的方式构造递归函数,此处待补充方法。二、检测回文检查一个字符串是否是一个回文可以采用如下方法:检查其首字符和最后一个字符是否相同检查删除首字符和最后一个字符之后产生的字串是否是一个回文若满足则是回文低效函数版本:bool isPalindrome(string str) { int len = str.length(); if (len &原创 2021-01-29 20:53:57 · 247 阅读 · 0 评论 -
C++ 流类
文章目录一、格式化输出二、文件流一、格式化输出输出流操作符:setw(n),setprecision(digits),setfill(d)需要包含 <iomanip>头文件操作方法描述endl行结束插入输出流setw(n)下一个输出字段宽度设置为n个字符,小于则用空格填充setprecision(digits)输出流精度设置为digits,如果为fixed或scientific模式,digits会指定小数点后数字位数。如果没有设置,digits表.原创 2021-01-19 18:12:03 · 304 阅读 · 0 评论 -
C++ 字符串类 string
文章目录一、string库常见方法二、\ 库总结一、string库常见方法操作方法描述str1 + str2连接str1与str2,返回结果str1 += str2将str2添加到str1末尾str1 op str2op可以是 == != < <= > >= , 按字典序比较 ASCII码值str[k]返回 k 位置字符,不检查范围str.length()返回 str 中字符个数str.at(k)返回 k.原创 2021-01-19 11:30:52 · 138 阅读 · 0 评论 -
C++ 函数与库
C++ 函数与库一、cmath 库中一些基本函数二、程序错误报告1. 定义error函数三、接口与实现1. 定义error库2. 导出数据类型参考一、cmath 库中一些基本函数函数功能abs(x)返回x的绝对值sqrt(x)返回x的平方根floor(x)返回小于或等于浮点数x的最大整数值ceil(x)返回大于或等于浮点数x的最小整数值exp(x)返回x的指数函数值 e^xlog(x)返回x的自然对数值log10(x)返回x的常用对.原创 2021-01-17 12:25:15 · 314 阅读 · 2 评论