C/C++
文章平均质量分 53
花无凋零之时
这个作者很懒,什么都没留下…
展开
-
分别使用快排和归并排序对链表进行排序
题目描述:因为要求时间复杂度为O(nlogn),而时间复杂度为O(nlogn)的排序算法有快排,归并排序和堆排。原创 2022-09-14 15:00:22 · 228 阅读 · 0 评论 -
Ubuntu中使用命令运行C/C++程序
在ubuntu环境下对C/C++进行编译首先保证ubuntu系统中包含编译工具(g++/gcc)和编辑工具(vim),C语言和C++对应的编译器分别为gcc,g++。如果缺少上述的相关应用,则需要先执行如下命令:sudo apt-get install build-essentialsudo apt install vimsudo apt-get install gccsudo apt-get install g++C语言的运行首先写一段简单的hello world程序,命名为hello.c原创 2022-03-30 21:41:41 · 10571 阅读 · 0 评论 -
C/C++中printf中的%f和%lf格式的区别
刚写了一道算法题,我用的是double类型的数据,输出用的是%lf,结果总是报错,后面发现改成%f就通过了,再去深究,才发现这个细节,所以做下笔记。首先,来看一下scanf和printf的输出格式:对,你没看错,scanf中对于float和double类型是有区分的,即前者是用的%f,后者是用的%lf,但是到了printf,则统一都是%f,对于这个小细节,我自己用的编译器——jetbrain中的clion好像是自动处理,并没有给我报错,所以我之前一直都是以为scanf和printf都是一样的处理方法原创 2022-03-15 11:16:05 · 5641 阅读 · 0 评论 -
C++中vector变量提取其中部分区间的元素
对于vector变量,有时需要像数组、string一样选择部分区间的值构成一个新的vector,那么我们可以这样做。首先对于一个已知的vector:vector<int> v;for(int i = 0; i < 10; i++) v.push_back(i);可以使用vector的构造方法来提取部分区间元素:vector<int> v1(v.begin(), v.begin() + 2);for(int i = 0; i < v1.size(); i++)原创 2022-02-21 09:44:26 · 11376 阅读 · 0 评论 -
并查集的C++代码实现
并查集的C++代码实现并查集的初始化操作并查集的查找操作并查集的合并操作并查集的应用范围判断图的连通分量数和连通性判断图是否有环实现Kruskal算法去年408的大纲发生比较大的变化,其中就包括之前从大纲中删除的并查集,没错,它又回来了。后来我为了应付初试,只是稍微了解了一些概念性的知识,没有过度深究,现在初试考完了,复试可能会考到代码实现,因此好好学习一下,做些笔记。并查集其实就是集合的一种表示方法,它是借助我们在树中学过的知识——双亲表示法处理集合的,即去集合中的一个结点作为根节点,后来的结点指向该原创 2022-02-11 23:19:10 · 2322 阅读 · 0 评论 -
C++中的priority_queue使用方法
priority_queue是C++中queue库中的优先队列,语法如下:template <class T, class Container = vector, class Compare = less > class priority_queue;优先队列具有队列的所有特性,包括队列的基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的。它和队列基本操作相同:top 访问队头元素empty 队列是否为空size 返回队列内元素个数push 插入元素到队尾原创 2022-02-05 14:21:35 · 3932 阅读 · 0 评论 -
C++实现矩阵的转置、加减法、乘法和幂乘
首先构造一个结构体表示矩阵(当然可以构造成类,然后将所有方法集成到该类中,这里简化操作):const int N = 3;struct Matrix{ int row, col; int matrix[N][N] = {0}; Matrix(){} Matrix(int r, int c): row(r), col(c){}};对于矩阵的转置,其实很简单实现:Matrix Reverse(Matrix x){ Matrix ans = Matrix(x.原创 2022-01-27 14:53:34 · 1542 阅读 · 0 评论 -
C++中的unordered_map常见用法详解
文章目录 1. std::unordered_map 的定义与特性2. 构造 std::unordered_map3. 赋值操作4. 迭代器操作4.1 指向整个容器中的元素4.2 指向某个桶中的元素 5. 容量操作6. 访问操作7. 插入操作8. 删除操作9. 查找操作10. 桶操作 1. std::unordered_map 的定义与特性 所在头文件:<unordered_map> std::unorederd_map类模板: template < class K.转载 2022-01-25 17:42:24 · 19171 阅读 · 0 评论 -
C++中自带的二分查找函数
C++的头文件algorithm中有用于二分查找的函数,分别为lower_bound()、upper_bound()以及binary_search():lower_bound():返回大于或等于目标值的第一个位置upper_bound():返回大于目标值的第一个位置binary_search():若目标值存在则返回true,否则返回false这三个函数都有三个参数:分别为数组的起始位置、数组的终止位置(取不到)以及要查找的目标值,返回值为物理地址,因此要获得对应的逻辑地址,需要减去数组的起始位置原创 2022-01-23 15:30:27 · 8932 阅读 · 0 评论 -
C++中自带的sort()函数
C++自带的sort()函数使用的是快排的思想构造的,有三个参数,分别为数组的起始位置,数组的终止位置,以及比较函数。其中终止位置是取不到的值,函数默认采用从小到大的排序方法,若我们的数组不是常规的整型数,则需要自己提供比较函数。常规方法#include <iostream>#include <algorithm>using namespace std;int main(){ int a[7] = {4, 3, 12, 5, 76, 2, 45}; so原创 2022-01-21 19:32:46 · 782 阅读 · 0 评论 -
C++常用STL库详细总结
C++STL库函数总结 #incude< algorithm >库函数1.sort排序2.reverse倒转3.unique去重4.二分查找5.find函数查找6.字符串和整型的互换7.排列组合 #include< vector >库函数1.vector介绍2.vector的功能函数 #include< stack >堆栈库函数1.stack介绍2.stack的函数 #include< queue >队列库函数1.queue正常转载 2022-01-20 17:46:25 · 5175 阅读 · 2 评论 -
C/C++中a.cpp:34:1: error: non-void function does not return a value in all control的解决方法
C++中出现a.cpp:34:1: error: non-void function does not return a value in all control这类错误,意思是编译器认为条件判断语句中没有else语句,可能不是所有的情况都会进入到其它判断语句中。源代码如下:int getMonth(string s){ if(s == "January") return 1; else if(s == "February") return 2; else if(s == "Ma原创 2022-01-21 15:54:51 · 2738 阅读 · 0 评论