- 博客(33)
- 收藏
- 关注
原创 set、map容器的简单使用
class Compare = std::less,会按照Key比较大小、若没有重载对应的运算符、则会报错。upper_bound 返回第一个大于key的元素的迭代器。lower_bound 返回第一个不小于key的元素的迭代器。euqal_range 返回指定条件key的迭代器范围。4.end() 返回最后一个元素的下一个元素的迭代器。3.begin() 返回开始位置的迭代器。6.size() 容器的大小。8.erase() 擦除元素。2.插入insert。
2023-07-20 21:26:03 99
原创 字符串IO
sstream头文件定义了三种类型来支持字符串IO,istringstream从string读取数据,ostringstream向string写入数据,stringstream既可以从string读取数据也可以向string写入数据。我们可以用str(s)清空或修改stringstream中保存的string,用str()获取stringstream中保存的string。当使用stringstream读取数据,再写入数据到string后,状态会变为eof,需要调用clear()重置状态后才能重新读写数据。
2023-07-07 08:33:23 47
原创 c++命名空间
命名空间可以定义多次,在同一个模块中多次定义一个同名的命名空间,编译器认为时同一个命名空间,其中要避免变量重名。 在多个模块中多次定义一个同名的命名空间,联合编译时也认为时同一个命名空间?
2023-06-29 09:18:06 47
原创 生产者消费者问题实现
思考:1.多线程并发访问造成的资源竞争问题—>可以使用互斥锁进行解决,A线程在访问共享资源的时候先上锁,这是若有其他线程B访问共享资源就会陷入阻塞,直到A访问完毕并且释放锁之后,B线程才能访问。当生产者生产的产品数量达到上限时,这是会陷入等待,需要消费者线程消费之后才能生产。描述,初始商品个数为8,最大商品个数是10个,不同的商品用不同的随机数区分。消费者有2个线程,先睡眠5秒,每个线程每1秒消耗一个商品。生产者有3个线程,每个线程每3秒产生一个商品。显示每次生产和消费的商品的随机编号。
2023-06-13 13:42:57 143 1
原创 【无标题】leetcode1047删除字符串中的所有相邻重复项
思路:使用栈结构,可以动态的监视栈顶,若栈顶元素等于当前扫描的元素,则出战,否则入栈,在完成所有重复项删除操作后返回最终的字符串。在 S 上反复执行重复项删除操作,直到无法继续删除。会选择两个相邻且相同的字母,并删除它们。给出由小写字母组成的字符串。
2023-06-03 22:15:07 52
原创 基于文件描述符的读写文件操作
mmap的处理就更加粗暴,他直接把页缓存的一部分映射到用户态内存,这样对内存的操作就直接对应页缓存的操作。参数fd为文件描述符,而且必须是以写入模式打开的文件,如果原来的文件大小比参数length大,则超过的部分会被删去,若比参数length小,文件会扩充到大小为length,并且多余的数据填充二进制0。使用mmap系统调用可以实现文件映射功能,也就是将一个磁盘文件直接映射到用户态内存地址空间,这样、内存内容和磁盘一一对应,不在需要read、write系统调用就可以进行IO操作,直接读写内存数据就可。
2023-06-01 08:41:57 315
原创 静态库vs动态库
库是写好的、现有的、成熟的、可以复用的代码。现实中很多程序都要依赖很多基础的底层库文件,不可能所有的代码都从零开始,因此库的存在意义非同寻常。我们可以对add.c, sub.c,mul.c,div.c做如下修改== printf(“modify.\n”)==而在windows环境下静态库以.lib结尾,动态库以.dll结尾。库有两种,分别为静态库和动态库。在类unix环境下,静态库一般以==.a。由于动态库对于更新、发布非常友好,故现代的大多数程序都是动态库!
2023-05-27 20:33:35 154 1
原创 linux文件子系统--文件相关命令总结
grep命令用于可以用于搜索文件内容,grep命令按正则表达式去搜索文件、如果文件中某一行匹配正则表达式,grep命令则会显示这一行。注意:path命令是根据PATH环境变量中的路径依次去查找,然后显示第一个匹配项,-a表示显示所有的匹配项。5.使用less但也浏览[less是more的高级版本,若系统中没有less命令,则用more命令]find命令可以在目录中递归地查找符合指定条件的目录或文件。在工作中经常使用,用于实时查看日志文件。 1.使用cat命令查看文件。使用env命令查看环境变量。
2023-05-25 21:43:53 131 1
原创 linux用户子系统基础命令学习总结
useradd [选项] username选项 -r 如果用户不存在、则在创建该用户的同时并创建用户家目录选项 -s 指定登录shell解释器的类型;例如sh或bash创建用户可能需要超级用户权限,可以使用sudo命令临时提升用户的权限,并且只有管理用户才能使用这个命令(sudoer)
2023-05-23 21:45:23 84 1
原创 【无标题】单链表相关操作
结点:就是一个结构体对象,节点中含有数据域、指针域。指针域中存放的是节点的地址。 b.查找链表中与特定值相等的节点O(N) 1.添加元素(在某个节点后边) O(1)用逻辑上的“链”将节点串联起来的数据结构。2.删除元素(在某个节点后边)O(1) a.根据索引查找节点O(N)
2023-05-15 19:58:31 27 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人