![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
页页读
这个作者很懒,什么都没留下…
展开
-
linux下信号量(semaphore)的使用例程
linux下信号量(semaphore)的使用例程semaphore是系统中的东西,所以不同系统中包含头文件不同,在linux中包含<semaphore.h>例程一:程序说明:完成一个多线程demo, 保证三个线程执行顺序, 即顺序打印a,b,c.#include <iostream>#include <semaphore.h>#include <memory>#include <thread>using namespace转载 2020-11-19 12:02:30 · 4678 阅读 · 0 评论 -
c++ string.find()参数说明
c++ string.find()参数说明int find(string s, int m, int n)假设母字符串为str.该函数实现的是在 str 中的第m个位置往后开始查找目标字符串s的前n个字符,返回找到的第一个出现字符串首字母的位置,若没找到,则返回-1.说明:第一个参数是要查找的字符串s.第二个参数是母字符串中查找的起始位置。第三个参数是目标字符串的前n个字符。或者说第三个参数为指出字符的个数。示例:#include<iostream>#include<原创 2020-09-24 16:00:46 · 6690 阅读 · 2 评论 -
风电场风机发电调度问题( 远景笔试题2020-09-21)
远景笔试题根据记忆描述:某风机场每台风机的发电量和距离升压站的距离各不相同,如风机1,距离为30, 发电量为20;风机2,距离为20, 发电量为18;风机3,距离为35, 发电量为25;风机4,距离为40, 发电量为30;求在所有风机总距离一定的情况下(例如距离<=100),最大发电量。输入:第一行:每台风机距离。第二行:每台风机发电量。第三行:总距离k。示例:输入:30 20 35 4020 18 25 3050输出:38题解:可以看成一个01背包问题,原创 2020-09-21 16:45:56 · 615 阅读 · 0 评论 -
为什么要用仿函数?
为什么要用仿函数?内容整理自国外C++教材先考虑一个简单的例子:假设有一个vector,你的任务是统计长度小于5的string的个数,如果使用count_if函数的话,你的代码可能长成这样:1 bool LengthIsLessThanFive(const string& str) {2 return str.length()<5; 3 }4 int res=count_if(vec.begin(), vec.end(), LengthIsLessThanFive)转载 2020-09-14 23:56:30 · 2274 阅读 · 0 评论 -
LRU 缓存结构 (c++ 哈希双链表实现)
LRU 缓存结构link题目描述:设计LRU缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能set(key, value):将记录(key, value)插入该结构get(key):返回key对应的value值[要求]set和get方法的时间复杂度为O(1)某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的。当缓存的大小超过K时,移除最不经常使用的记录,即set或get最久远的。若opt=1,接下来两个整数x, y,表示set(x, y)原创 2020-09-10 21:27:14 · 801 阅读 · 0 评论 -
寻找第K大 总结 c++
找第K大nowcoder link题目描述有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。测试样例:[1,3,5,2,2],5,3返回:2题解:思路:快排+二分法像快排一样,但是每次排完需要与k进行比较,具体比较看代码。1.由于一般排序是从小到大排的;所以注意这里比较的时候是 n-i 与 k进行比较;2.或者从大到小排,则比较 i+1 与 k的大小;代码:1. 从小到原创 2020-09-05 12:31:41 · 338 阅读 · 0 评论 -
链表中的节点每k个一组翻转(c++实现)
LRU c++ 哈希双链表法实现leetcode link牛客 link以牛客这个题目表述写的:设计LRU缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能set(key, value):将记录(key, value)插入该结构get(key):返回key对应的value值[要求]set和get方法的时间复杂度为O(1)某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的。当缓存的大小超过K时,移除最不经常使用的记录,即set或get最久远的。原创 2020-09-05 09:42:13 · 1075 阅读 · 0 评论 -
LeetCode 30. 串联所有单词的子串(c++)
leetcode 30. 串联所有单词的子串感觉这个题太难了,记录一下,有空多看看。link给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。示例 1:输入:s = “barfoothefoobarman”,words = [“foo”,“bar”]输出:[0,9]解释:从索引 0 和 9 开始的子串分原创 2020-07-23 21:39:20 · 174 阅读 · 0 评论 -
利用constexpr声明数组的大小
摘自:这里你想要一个计算数组size的函数,size是10的倍数。如果不用constexpr,你需要创建一个宏或者使用模板,因为你不能用函数的返回值去声明数组的大小。但是用constexpr,你就可以调用一个constexpr函数去声明一个数组。constexpr int getDefaultArraySize (int multiplier){ return 10 * multiplier;}int my_array[ getDefaultArraySize( 3 ) ];int a原创 2020-07-16 19:42:21 · 795 阅读 · 0 评论 -
c++中虚函数的作用(virtual)
我们知道,在同一类中是不能定义两个名字相同、参数个数和类型都相同的函数的,否则就是“重复定义”。但是在类的继承层次结构中,在不同的层次中可以出现名字相同、参数个数和类型都相同而功能不同的函数。例如在例12.1(具体代码请查看:C++多态性的一个典型例子)程序中,在Circle类中定义了 area函数,在Circle类的派生类Cylinder中也定义了一个area函数。这两个函数不仅名字相同,而且参数个数相同(均为0),但功能不同,函数体是不同的。前者的作用是求圆面积,后者的作用是求圆柱体的表面积。这是合法的转载 2020-06-10 11:06:21 · 3146 阅读 · 2 评论 -
c++ 中malloc()使用详解以及与new()的区别
一、原型:extern void *malloc(unsigned int num_bytes);头文件:#include <malloc.h> 或 #include <alloc.h> (注意:alloc.h 与 malloc.h 的内容是完全一致的。)功能:分配长度为num_bytes字节的内存块说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。举例:#include<stdio.h>转载 2020-05-18 22:09:44 · 310 阅读 · 0 评论 -
seekg()与tellg()用法详解
对输入流操作:seekg()与tellg()对输出流操作:seekp()与tellp()下面以输入流函数为例介绍用法:seekg()是对输入文件定位,它有两个参数:第一个参数是偏移量,第二个参数是基地址。对于第一个参数,可以是正负数值,正的表示向后偏移,负的表示向前偏移。而第二个参数可以是:ios::beg:表示输入流的开始位置ios::cur:表示输入流的当前位置ios::end:表示输入流的结束位置tellg()函数不需要带参数,它返回当前定位指针的位置,也代表着输入流的大小。假设转载 2020-05-18 21:40:40 · 4121 阅读 · 1 评论 -
【C++】局部变量、全局变量、静态变量、动态对象区别
概述局部变量在一个函数内部定义的变量(包括函数形参)是局部变量。全局变量在函数外定义的变量是局部变量。静态变量静态全局变量在全局变量前加static修饰。静态局部变量在局部变量前加static修饰。动态对象程序在运行过程中动态申请内存的对象(new、malloc)内存区所存放对象创建时期销毁时期栈内存局部非静态对象运行到该程序...原创 2020-04-23 18:30:34 · 675 阅读 · 0 评论 -
【c++】char* 和 char[]的区别
char[]与char*char s1[] = "hello";让我们解读一下这种初始化方式和s1。1、"hello"是一个字符串常量,保存在常量存储区。因为赋值给了s1[],而s1[]是自动存储类型的变量,所以拷贝了一份到栈中。2、s1实际上是一个指针常量。其指向的地址不能变,但能通过s1改变其指向地址的值。这时候可能有童鞋会问:既然s1是指针那为什么cout<&l...原创 2020-04-12 21:04:59 · 265 阅读 · 0 评论