- 博客(20)
- 资源 (10)
- 收藏
- 关注
原创 std::is_invocable是C++17
具体来说,is_invocable模板接受一个函数类型和一组参数类型作为模板参数,并提供一个名为value的静态成员常量,用于表示给定的函数类型是否可以被调用。如果value为true,则表示给定的函数类型可以被调用,否则表示不可调用。std::is_invocable是C++17中引入的一个类型特性模板,用于判断给定的函数类型是否可以被调用。
2024-03-07 18:53:18 299 1
原创 数组“之”字打印,状态机做法
状态机的转换主要用于处理下一步的走法,这一个题目的复杂点只能是逐步走,不能上来就确定8位置是怎么走,没有动态规划的特征。到6点newState = down, column=0, 无法--,只能向下走,column不变,row++;到1点 nextState = leftdown, 左下方向,row++,column--;比如0是起点:下一步向右,nextState=Right, column++;按照这个规率找到各个状态机之间的切换原理,就可以解决这个题目,
2024-02-03 15:36:13 313 1
原创 之字打印c++
/ 最后一列横坐标加1。// 最后一列纵坐标加1。int x1 = 0;//(x1,y1)横向走的坐标 (x2,y2)纵向走的坐标。
2024-02-02 02:07:48 351
原创 cmake 之 ExternalProject_Add 引入本地文件
CONFIGURE_COMMAND:执行cmake文件的指令,类似平常的"cmake …INSTALL_COMMAND:等效于手动输入"make install"BINARY_DIR:输出目前的目录,也就是平常使用的build目录。DOWNLOAD_DIR:存放下载文件的路径。SOURCE_DIR:存入编译源文件的路径。URL:代码外部依赖的路径。
2023-12-02 15:56:23 426
原创 epoll demo
如果返回 EAGAIN,把 socket 加入 epoll,在 epoll 的驱动下写数据,全部数据发送完毕后,再出 epoll。这种方式的缺点是,即使发送很少的数据,也要把 socket 加入 epoll,写完后在移出 epoll,有一定操作代价。使用Linux epoll模型,水平触发模式;epoll 只会通知一次,accept 只处理一个连接,导致 TCP 就绪队列中剩下的连接都得不到处理。考虑这种情况:多个连接同时到达,服务器的 TCP 就绪队列瞬间积累多个就绪连接,由于是边缘触发模式,
2023-07-05 09:16:34 94 1
原创 IP头中TTL字段的作用
3,TTL字段由IP数据包的发送者设置,在IP数据包从源到目的的整个转发路径上,每经过一个路由器,路由器都会修改这个TTL字段值,具体的做法是把该TTL的值减1,然后再将IP包转发出去。4,如果在IP包到达目的IP之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP包并向IP包的发送者发送 ICMP time exceeded消息。1,TTL的作用是限制IP数据包在计算机网络中的存在的时间。2, 虽然TTL从字面上翻译,是可以存活的时间,但实际上TTL是IP数据包在计算机网络中可以转发的最大跳数。
2023-05-12 14:40:04 579
原创 单向链表的N*log(N)的原址排序
#include <cstdint>#include <algorithm>#include <unistd.h>#include <stdio.h>struct node{ int value; node *next; node(int v) : value(v), next(nullptr){}};node *Partion(node *begin, node *end){ if (begin == n.
2022-02-28 09:10:03 199
原创 c++11 函数的引用限定符(reference qualifiers)
在C++11的新特性中,关于左值/右值的对象调用函数,有了一些新的变化。如下面的代码:class Widget {public: void doWork() & //只有*this为左值的时候才能被调用 { std::cout << "left value call" << std::endl; } void doWork() && //只有*this为右值的时候才能被调用 { std::
2022-02-11 17:25:13 543
原创 LRU 缓存的实现
LRU缓存的实现有以下几个着重点:1.缓存大小2.被用的对象排到头3.查询效率的问题。最久未使用的对象被移除,即是在Put新对象时,size > capacity时,需要删除list尾部的数据,同时删除cache_中,并且把Put的对象放在list的头部为了提高查询效率用map存放一个key值,只有当find的时候,效率高一点。下面是简单的实现代码:#pragma once#include <iostream>#include <map&g
2021-11-04 19:57:41 355
原创 关于go语言中range值拷贝理解
package mainimport ( "fmt")func test_range_val_copy() { a := []int{1, 2, 3, 4} // 下面使用的v是一个临时变量 // 相当于 var v int // 这时临时变理v的地址是固定下来了,每次v的值在变,但是&v的地址是不变的 // 最后&v会...
2020-03-15 11:41:04 1119
原创 linux内核copy_process
/* * This creates a new process as a copy of the old one, * but does not actually start it yet. * * It copies the registers, and all the appropriate * parts of the process environment (as per t...
2020-03-10 21:55:53 369
原创 linux内核中如何通过pid得到 struct pid
struct pid *find_pid_ns(int nr, struct pid_namespace *ns)用于从namespace 下的pid找到对应的pid结构体,位置:/linux/kernel/pid.c声明:struct pid * find_pid_ns(int nr struct pid_namespace * ns );功能:此函数用于获取进程描述符,此进程应该满...
2020-03-10 21:10:13 1099
转载 Poco数据库操作用户手册(一)
一个简单的例子POCO Data提供了一个抽象的数据层,以供用户方便的与不同的数据库交互,以下是一个完整的实例:[code]#include "Poco/Data/Common.h"#include "Poco/Data/SQLite/Connector.h"#include using namespace Poco::Data;vo
2015-09-11 21:16:53 1295
转载 POCO: 类型和字节序
固定长度的整型,字节序转换,以及Any/DynamicAny类型固定长度整型Poco定义了一些固定长度的整型:#include "Poco/Types.h"(Poco/Foundation.h自动包含了以上文件)Poco::Int8, Poco::Int16, Poco::Int32, Poco::Int64Poco::UInt8, Poco::
2015-09-11 21:11:25 650
转载 Poco数据库操作用户手册(二)
记录集(RecordSet)Poco::Data::RecordSet类提供了一个通用的方法与数据库的表进行交互,你可以使用RecordSet进行:a. 遍历数据表中所有的行与列b. 获取各列的元信息,比如名称,类型,长度等.使用RecordSet,需要先创建一个Statement并执行他,从Statement创建一个RecordSet,如下:Stateme
2015-09-11 21:09:16 591
转载 Poco数据库操作用户手册(一)
一个简单的例子POCO Data提供了一个抽象的数据层,以供用户方便的与不同的数据库交互,以下是一个完整的实例:[code]#include "Poco/Data/Common.h"#include "Poco/Data/SQLite/Connector.h"#include using namespace Poco::Data;vo
2015-09-11 21:06:28 507
vc显示行号文件及使用说明
2011-01-03
最新的腾讯面试题,一起分享
2010-09-29
Install shield api中文版
2010-05-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人