![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C、C++基础、数据结构与算法基础
基础知识
大河大江
这个作者很懒,什么都没留下…
展开
-
C语言编程问题记录
答:是的,当你使用一个5字节的结构体指针去指向一个10字节的缓存时,实际上取用的是这10字节缓存的前5个字节。这是因为指针的类型决定了它如何解读所指向的内存区域。在这种情况下,指针只会解读足够的字节来匹配其自身的结构体大小。例:定义一个5字节的结构体指针,去指向一个10字节的缓存,是否取用的就是10字节缓存的前5个字节?原创 2024-06-28 23:57:17 · 113 阅读 · 0 评论 -
待归纳:C语言基础归纳-指针总结
C语言基础归纳-指针总结。原创 2024-04-08 22:49:48 · 108 阅读 · 0 评论 -
C语言中如何取一串比特中的特定位的比特
向右的移位操作相当于丢掉最后的几位,然后剩下的位数进行“与”运算即可。此处在进行计算时,选择转化成十六进制的数进行“与”运算,想要取n位比特,就对应的把二进制的n个1转化成十六进制的数,然后进行“与”运算即可。原创 2023-12-04 21:48:49 · 726 阅读 · 0 评论 -
sort函数进行二维vector的排序
sort(envelopes.begin(), envelopes.end(), [](const auto& e1, const auto& e2) { return e1[0] < e2[0] || (e1[0] == e2[0] && e1[1] > e2[1]); });原创 2023-07-23 15:59:05 · 143 阅读 · 0 评论 -
C语言实现多态
多态原创 2022-09-17 11:52:07 · 1286 阅读 · 1 评论 -
中国系统面试0819
面试原创 2022-08-20 17:23:53 · 345 阅读 · 0 评论 -
C++字符串输入问题
字符串输入原创 2022-08-20 17:10:56 · 335 阅读 · 0 评论 -
vector<pair<int,int>> 的使用和sort排序
vector pair sort原创 2022-08-20 16:47:37 · 4018 阅读 · 1 评论 -
面试问题整理(不断更新)
面试原创 2022-08-15 13:32:26 · 449 阅读 · 0 评论 -
单链表的创建
链表原创 2022-08-12 17:31:55 · 456 阅读 · 0 评论 -
熟记01:两个有序链表的合并(递归法、迭代法)
单链表原创 2022-08-11 15:39:37 · 379 阅读 · 0 评论 -
单链表增加虚拟头结点
单链表原创 2022-08-10 15:49:41 · 874 阅读 · 0 评论 -
笔试题大疆08.07
笔试原创 2022-08-09 16:54:55 · 400 阅读 · 0 评论 -
回溯算法讲解
回溯原创 2022-07-29 17:06:58 · 130 阅读 · 0 评论 -
排序:快排(随机选择枢轴)、堆排序、归并排序
排序原创 2022-07-18 23:04:38 · 398 阅读 · 0 评论 -
关于递归的理解
剑指offer64题的题解原创 2022-06-09 22:16:54 · 95 阅读 · 0 评论 -
sort函数进行二维vector的排序
利用一组数据来说明,sort函数进行二维vector的排序:envelopes = [[5,4],[6,4],[6,7],[2,3]]代码如下:#include<iostream>#include<vector>#include<algorithm>using namespace std;int main() { vector<vector<int>> envelopes(4,vector<int>(2,0));原创 2022-04-22 22:28:35 · 2793 阅读 · 0 评论 -
stringstream的用法
1.用stringstream来分割指定的字符字符串,代码如下://用stringstream来分割指定的字符字符串#include <iostream>#include <sstream>#include <vector>#include<queue>#include<string>using namespace std;int main() { string str = "1,2,3,4,5"; string原创 2022-04-21 00:58:52 · 6039 阅读 · 0 评论 -
利用模板类实现栈
代码如下:#include <iostream>#include <vector>#include <cstdlib>#include <string>#include <stdexcept>using namespace std;template <class T>class Stack {private: vector<T> elems; // 元素 public: vo原创 2022-04-19 16:16:32 · 571 阅读 · 0 评论 -
getchar函数的使用
举一个例子:代码如下:#include<iostream>#include<vector>#include<string>using namespace std;int main() { int n = 3; vector<int> vec(3, 0); for (int i= 0; i < n; i++) { cin >> vec[i]; getchar(); } for (int i = 0; i &l原创 2022-04-14 08:55:52 · 231 阅读 · 0 评论 -
快速排序整理
理解图:附上代码:class Solution {public: vector<int> getLeastNumbers(vector<int>& arr, int k) { quickSort(arr, 0, arr.size() - 1); vector<int> res; res.assign(arr.begin(), arr.begin() + k); return res;原创 2022-04-01 19:42:23 · 343 阅读 · 0 评论 -
C++中this指针使用
this指针的使用:this 是 C++ 中的一个关键字,也是一个 const 指针,它指向当前对象,通过它可以访问当前对象的所有成员。注意:1.this 是 const 指针,它的值是不能被修改的,一切企图修改该指针的操作,如赋值、递增、递减等都是不允许的。2.this 只能在成员函数内部使用,用在其他地方没有意义,也是非法的。3.只有当对象被创建后 this 才有意义,因此不能在 static 成员函数中使用this 实际上是成员函数的一个形参,在调用成员函数时将对象的地址作为实参传递给 t原创 2022-03-28 17:09:04 · 1963 阅读 · 0 评论 -
C++中vector的使用小结
关于vector的使用,特别好用的一些点:1、一维数组vector使用时:附上代码如下:#include<iostream>#include<vector>using namespace std;int main() { int n; cin >> n; int number; vector<int> res(n,0); //初始化一个含有n个元素的一维数组,初始元素为0 //看初始化为0是否成功,进行打印输出 for (int i原创 2022-03-28 00:38:13 · 1670 阅读 · 0 评论 -
vector的使用
直接附上用例:#include<iostream>#include<vector>using namespace std;int main() { string str; cin >> str; vector<int> count(27, 0); //建立一个大小为27,所有初始个数皆为0 for (int i = 0; i < str.size(); i++) { if (str[i] >= 'a' && s原创 2022-03-21 14:24:53 · 307 阅读 · 0 评论 -
unordered_map<int,bool>中:bool类型,未初始化时,默认为
默认为false吗?原创 2022-01-20 22:08:14 · 819 阅读 · 0 评论 -
STL与泛型编程
一些查询C++知识的网页:CPlusPlus.comCppReference.comgcc.gnu.org原创 2022-01-17 15:30:46 · 310 阅读 · 0 评论 -
对容器可以保存的元素类型的限制(C++ Primer 5th)
顺序容器几乎可以保存任意类型的元素。特别是,我们可以定义一个容器,其元素的类型是另一个容器。这种容器的定义与任何其他容器类型完全一样:在尖括号中指定元素类型(此种情况下,是另一种容器类型);//此处lines是一个vector,其元素类型是string的vectorovector<vector<string>> lines; //vector的vector注意:较旧的编译器可能需要在两个尖括号之间键入空格,例如vector<vector<string>原创 2022-01-16 22:25:57 · 562 阅读 · 0 评论 -
顺序容器(C++ Primer 5th)
0顺序容器概述除了固定大小的array外,其他容器都提供高效、灵活的内存管理。我们可以添加和删除元素,扩张和收缩容器的大小。容器保存元素的策略对容器操作的效率有着固有的,有时是重大的影响。在某些情况下,存储策略还会影响特定容器是否支持特定操作。例如,string和 vector将元素保存在连续的内存空间中。由于元素是连续存储的,由元素的下标来计算其地址是非常快速的。但是,在这两种容器的中间位置添加或删除元素就会非常耗时:在一次插入或删除操作后,需要移动插入/删除位置之后的所有元素,来保持连续存储。而且原创 2022-01-16 16:11:28 · 388 阅读 · 0 评论 -
容器适配器:stack、queue和priority_queue(C++ Primer 5th)
0前言除了顺序容器外,标准库还定义了三个顺序容器适配器: stack、queue 和priority_queue。适配器(adaptor)是标准库中的一个通用概念。容器、迭代器和函数都有适配器。本质上,一个适配器是一种机制,能使某种事物的行为看起来像另外一种事物一样。一个容器适配器接受一种已有的容器类型,使其行为看起来像一种不同的类型。例如,stack适配器接受一个顺序容器(除array或forward_list外),并使其操作起来像一个stack一样。表9.17列出了所有容器适配器都支持的操作和类型。原创 2022-01-15 11:54:34 · 397 阅读 · 0 评论 -
hash_map与map
## 什么时候需要用hash_map,什么时候需要用map?速度上:hash_map 查找速度会比map快,hash_map 属于常数级别;而map的查找速度是log(n)级别。但是常数不一定就比log(n)小,如果考虑效率,特别是在元素达到一定数量级时,考hash_map。内存上:若内存使用特别严格,希望程序尽可能少消耗内存,那么使用map会更合适一些。...原创 2022-01-10 23:38:54 · 268 阅读 · 0 评论 -
链表的操作
双向链表的插入操作:原创 2022-01-10 20:41:42 · 328 阅读 · 0 评论 -
C++中查找字符串中的所有某个字串
//查找s 中子串出现的所有位置 sonStr="abc"; vector<int> strNumber; position=0; //用来记录子串出现的位置 while((position=s.find(flag,position))!=string::npos) { strNumber.push_back(position); position++; }...原创 2021-12-26 15:40:45 · 1205 阅读 · 0 评论 -
一:2021.07.31 客户端开发 笔试题
1、循环队列有50个节点,front=28,rear=14,。先出队列M个元素,直到front=6,再入队列x个元素,直到rear=2。操作完成之后,队列中有N个元素。则M与N为?原创 2021-07-31 23:19:23 · 235 阅读 · 0 评论 -
二:2021.08.01 C/C++开发笔试题
1、写出float x与“零值”比较的if语句。答:无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。其中EPSINON是允许的误差(即精度)。const float EPSINON = 0.00001;if ((x >= - EPSINON) && (x <= EPSINON);2、下面描述中,表达错误的是:A、公有继承时基类中的public成员在派生类原创 2021-07-31 12:48:24 · 194 阅读 · 0 评论 -
几点记录
对于写好的代码,目前用不上,但又不想删除,就可以使用这个方法,比注释方便。原创 2021-07-22 08:20:42 · 79 阅读 · 0 评论 -
C++岗面试(2021.06.25,面试通过)
1、main函数之前要执行什么操作?2、讲一讲C++多态3、讲一讲指针和引用原创 2021-06-25 21:48:27 · 347 阅读 · 0 评论 -
链表指针的修改:链表反转
单链表的反转:单链表反转的完整代码:原创 2021-06-06 15:00:42 · 237 阅读 · 0 评论 -
递归法、回溯法、深度优先搜索算法(DFS)
分治法通常通过递归的手段来解决。递归法需要关注两个问题:①递归边界②递归式我们以全排列和N皇后问题来理解递归法。原创 2021-05-31 23:42:02 · 599 阅读 · 0 评论 -
链表的使用
对链表的操作与其他存储结构类似,无非也就是“增删改查”。在这里插入代码片原创 2021-05-23 21:11:54 · 340 阅读 · 0 评论 -
栈的应用:中缀表达式转后缀表达式并计算(来自于算法笔记)
以一道表达式的计算题为例:先来讲一下思路:题目给出的是中缀表达式,所以要计算它的值主要是两个步骤:①中缀表达式转后缀表达式。②计算后缀表达式。下面分别讲一下这两步。步骤1:中缀表达式转后缀表达式①设立一个操作符栈,用以临时存放操作符;设立一个数组或者队列,用以存放后缀表达式。②从左至右扫描中缀表达式,如果碰到操作数(注意:操作数可能不止一位,因此需要一位一位读入然后合并在一起,具体实现见代码),就把操作数加入后缀表达式中。③如果碰到操作符op,就将其优先级与操作符栈的栈顶操作符的优先级比较原创 2021-05-22 13:47:14 · 142 阅读 · 2 评论