111qqz的小窝
Home
ACM-ICPC
深度学习 icon
caffe源码阅读笔记 推荐系统 计算机视觉
公开课 icon
6.828 CS341 CSAPP
工程 icon
cpp cuda levelDB源码笔记 linux 前端 图像处理 容器
随笔杂谈
面试
About
🌐
English Chinese
  • 浅谈 Cpp Value Categories

    Apr 12, 2022 · 1 min read · cpp modern cpp value catrgory

    背景 每一个cpp expression都有一个type 和 value category 属性 前者大家都比较了解,但是后者却常常被忽视 Value Categories in the c language cpp是由c语言发展而来,因此这里先介绍c 语言中的value category c语言只有简单的lvalue和rvalue两种 lvalue lvalue的"l"表示"left",表示lvalue可以出现在assigment operator的左边 更准确的说 Tip "lvalue is a value refer to an object" "an …


    Read More
  • std::shared_ptr 学习笔记

    Mar 5, 2022 · 5 min read · cpp modern cpp std::shared_ptr

    概述 std::shared_ptr是智能指针的一种,在modern c++中被广泛使用(甚至滥用) 虽然天天使用,但是有些细节还不是100%清楚,因此来整理一下 为了方便表述,下文只写shared_ptr,不在写std的namespace. 组成 shared_ptr的实现中,成员通常由两部分组成。一个是所涵盖对象的指针,一个是control block 的指针 control block Tip 最重要的是,control block是 dynamically-allocated 的 (校招的时候某次面试,让我手写shared_ptr的实现,当时被多个object如何共享引用计数卡住了。。主要就是没意识到control …


    Read More
  • [c++17] std::any 笔记

    Mar 5, 2022 · 3 min read · cpp modern cpp std::any

    背景 一种很常见的背景是,需要表示未知类型的数据。 比如可能是用户提供的数据,比如是一个Cache的实现, value想支持任意类型的数据 对于这种场景,c语言的出身的开发者通常会使用void*来实现 1struct day { 2 // ...things... 3 void* user_data; 4}; 5 6struct month { 7 std::vector<day> days; 8 void* user_data; 9}; 10 了解cpp11的开发者可能会使用std::shared_ptr<void> 来实现 1struct day { 2 // ...things... 3 …


    Read More
  • [c++11] std::async std::packaged_task std::promise and std::future notes

    Sep 30, 2018 · 3 min read · async cpp modern cpp future packaged_task promise

    把std::async,std::packaged_task,std::promise三个放在一起来说,是因为他们都可以返回一个std::future对象.简单来说,当某个线程需要等待一个特定的一次性事件(one-off event),它可以用一个"future"来表示这个事件. std::async 有的时候可能你需要做一个花费事件比较长的计算,但是计算结果不是立刻需要.这个时候就可以用一个新的线程来做这个计算.这里比较关键的问题是如何将在新线程进行计算的结果传回到当前线程,因为std::thread并没有提供一个类似的机制. 这个时候就需要std::async登场了. 1 2 #include …


    Read More
  • [C++11]std::condition_variable notes

    Sep 23, 2018 · 2 min read · cpp modern cpp condition_variable

    condition_variable 类是同步原语,能用于阻塞一个线程,或同时阻塞多个线程,直至另一线程修改共享变量(条件)并通知 condition_variable 。 用人话来说,condition_variable,也就是条件变量,是线程间通信的一种方式。 线程之间在很多时候需要通信,比如经典的生产者消费者问题 一个比较naive的方案是,用mutex来保护一个flag,然后另一线程不停得check这个flag的状态是否改变。以及在这个方案上的改进:让另一个线程check之后,可以先睡一段时间。 但是这两种方法都不够好。第一种不好的原因当然是不停得check,肯定会耗费大量的资源。而第二种,由于没办法准确估计要休眠的时间,因 …


    Read More
  • std::call_once && std::once_flag notes

    Sep 20, 2018 · 1 min read · cpp modern cpp call_once once_flag

    多线程保护数据时,一种较为特殊的情况是只需要保护资源的初始化。 资源初始化一般遵循"lazy initialization"的原则,也就是在用到该资源最近的地方再初始化。 比较容易想到的办法是用std::mutex,将资源初始化的地方锁起来,如下: 1 std::shared_ptr<some_resource> resource_ptr; 2 std::mutex resource_mutex; 3 void foo() 4 { 5 std::unique_lock<std::mutex> lk(resource_mutex); 6 if(!resource_ptr) 7 { 8 …


    Read More
  • [C++11 ] std::ref&&std::reference_wrapper notes

    Sep 9, 2018 · 2 min read · cpp modern cpp

    起因是在看《CplusplusConcurrencyInAction_PracticalMultithreading》的时候,里面讲到初始化std::thread的时候,如果thread funtion的参数列表中有引用,需要传入std::ref才可以得到符合预期的结果。 查阅发现std::ref是用来生成std::reference_wrapper。 按照 cppreference 上的话来说 `std::reference_wrapper` 是包装引用于可复制、可赋值对象的类模板。它常用作将容器存储入无法正常保有引用的标准容器( …


    Read More
  • [C++11] promise && future leanrning notes

    Aug 23, 2018 · 1 min read · cpp modern cpp future promise

    用人话就是,主线程传给附属线程一个promise Object,然后主线程想要获取附属线程set给promise Object的值(也就是该线程返回的某个结果),需要通过主线程中的promise object 得到对应的future object(每个promise 对应一个 future),然后调用future 的get方法。如果附属线程没有执行作为参数传入的promise的set方法去返回结果,那么程序就会block住。 1 /* *********************************************** 2Author :111qqz 3mail: renkuanze@sensetime.com …


    Read More
  • c++11 function 与bind 学习笔记

    Jul 19, 2018 · 1 min read · cpp modern cpp

    C++11 std::function 是一种通用、多态的函数封装,它的实例可以对任何可 以调用的目标实体进行存储、复制和调用操作 见下面的例子 1 /* *********************************************** 2Author :111qqz 3mail: renkuanze@sensetime.com 4Created Time :2018年07月19日 星期四 17时41分00秒 5File Name :bind.cpp 6************************************************ */ 7 #include <functional>8 …


    Read More
  • C++ 记录代码运行时间

    Jul 10, 2018 · 1 min read · cpp modern cpp

    以前用的办法太老土啦 看到一个since C++11的方法,我觉得比较优雅 1 #include <iostream>2 #include <chrono>3 //#include <ratio> 4 #include <thread>5 6 void f() 7 { 8 std::this_thread::sleep_for(std::chrono::seconds(1)); 9 } 10 11 int main() 12 { 13 auto t1 = std::chrono::high_resolution_clock::now(); 14 f(); 15 auto t2 = …


    Read More

111qqz

深度学习框架工程师@Tencent, ex-ICPCer@HUST
Read More

Recent Posts

  • caffe 源码阅读笔记
  • Goodbye 2024
  • [施工中] cupy与torch的导入顺序不同对计算结果的影响
  • 写在毕业五年之后
  • Build Onnxruntime With Bazel
  • Goodbye 2022
  • 【施工中】gitlab ci docker executor指定用户执行
  • [施工中]caffe 源码学习笔记(11) softmax

Categories

ACM 913 其他 90 DEEP-LEARNING 68 面试 63 随笔杂谈 62 工程 59 计算机视觉 21 MOOC 15 优化 10 C++ 4 生活 1

Series

CAFFE源码阅读笔记 13 LEVELDB代码阅读笔记 9 CSAPP 7 CPP-FAQ 1 MODERN-CPP 1

Tags

DP 71 MATH 49 线段树 43 BRUTE-FORCE 39 LEETCODE 38 GREEDY 36 DFS 34 NUMBER-THEORY 27 CPP 26 模拟 24 博弈论 22 构造 22 BINARY-SEARCH 21 母函数 21
All Tags
01背包9 2-SAT1 6.8284 AC自动机4 ANACONDA1 ANCHOR-BOX1 ANTI-SG2 ARCHLINUX2 ASYNC1 ATOM1 AVX1 AWK1 BAZEL1 BFS20 BINARY-SEARCH21 BINARY-SEARCH-TREE1 BITSET优化4 BLOG1 BOOST1 BOOSTING1 BRUTE-FORCE39 BSGS4 C++7 C++111 CACHE1 CAFFE14 CAFFE21 CALL-STACK1 CALL_ONCE1 CDQ分治3 CHECKPOINT1 CHROMEBOOK1 CI1 CMAKE1 CODEFORCES1 CONDITION_VARIABLE1 CONVOLUTIONAL-NEURAL-NETWORK1 CPP26 CS231N1 CS3411 CSAPP7 CSE599W1 CUDA6 CUMULATIVE-MATCH-CHARACTERISTI1 CUPY1 D1 DFS34 DFS序1 DIJKSTRA2 DISCOURSE1 DL-SYS1 DOCKER6 DP71 EIGEN1 END-TO-END1 FACTORIAL-NUMBER-SYSTEM1 FASTER-RCNN3 FEATURE-PYRAMID-NETWORKS1 FEDORA1 FISH1 FLOYD10 FLOYD-判圈2 FPN1 FUTURE2 G++1 GALLIUMOS1 GCC1 GCD2 GDB1 GEDIT1 GEEKOS4 GITHUB1 GITLAB1 GOLANG1 GREEDY36 GRPC2 GRUB1 GRUNDY1 HALIDE2 HAPROXY1 HASH13 HASH-MAP1 HASKELL1 HIGH-PERFORMANCE-COMPUTING1 HUGO2 IMAGE-DENOISING1 INCEPTION1 JAVA5 JAVASCRIPT1 JDK1 JETSON-NANO2 JSON1 K-MEANS2 K-SUM3 K8S2 KAFKA1 KD-TREE6 KM14 KMP19 KM算法1 LATENT-FACTOR-MODEL1 LATEX1 LAZY标记9 LCA10 LEETCODE38 LEVELDB10 LINEAR-CLASSIFICATION1 LINUX9 LINUX-MINT1 LIS5 LOG2 LRU2 LSTM1 LUA1 LUCAS定理3 MANACHER4 MANJARO3 MAP6 MATH49 MEAN-AVERAGE-PRECISION1 METRIC-LEARNING1 MILLER-RABIN素数测试1 MODEL-CONVERTOR1 MODEL-DISTILLATION1 MODERN-CPP10 MPI1 MST6 MURMURHASH1 MUTUAL-LEARNING1 MYSQL3 NERDTREE1 NETWORK1 NIM游戏4 NLP1 NMS1 NON-LOCAL-MEANS1 NON-LOCAL-NEURAL-NETWORKS1 NUMBER-THEORY27 NUMPY1 OBJECT-DETECTION2 ONCE_FLAG1 ONNXRUNTIME1 PACKAGED_TASK1 PCA2 PERFECT-FORWARDING1 PIPLINE1 POSE-DRIVEN1 PRIM1 PROMISE2 PROPERTY_TREE1 PROTOBUF1 PYTHON11 PYTORCH2 QT5 REACT3 REDIS1 REDUX1 REID3 RESNET2 RETINANET1 RMQ17 RNN1 SET8 SG函数12 SHADOWSOCKS2 SIMD1 SIMHASH1 SIMILARITY-LEARNING1 SINGLE-STATE-DETECTOR1 SJ定理2 SLIDING-WINDOWS1 SLIM1 SORT1 SORTINGS3 SPFA10 SPRING2 SSD1 STDANY1 STDSHARED_PTR1 STEAM2 STL16 STREAM1 SUPERCOMPUTING1 SUPERVISOR1 TARJAN2 TENSORFLOW12 TENSORRT2 THREADING-BUILDING-BLOCKS1 THRUST1 TREE7 TRIE7 TRIPLET-LOSS1 TSP2 TWO-POINTER5 TYPESCRIPT1 UNICODE1 VALUE-CATRGORY1 VARIADIC-FUNCTION1 VARIETY1 VECTOR2 VIM6 VUNDLE1 WHITENING1 WORDPRESS1 YOUCOMPLETEME1 YUV-IMAGE-FORMAT1 一致性哈希1 三分2 中国剩余定理4 主席树5 乱搞6 二分2 二分图5 二分图匹配4 二分图最佳匹配14 二次剩余4 二维线段树1 二进制1 二项式定理1 交互题1 交叉染色法6 京东1 优先队列4 传递闭包5 位运算4 依赖注入1 偏度1 光流法1 内存屏障1 凸包1 分块12 分布式消息系统1 分治2 分类讨论1 前端6 前缀和17 剩余系3 剪枝1 动态线段树1 动态连通性1 勾股数1 匈牙利算法15 区间DP13 区间合并1 区间第K大2 区间计数1 协同过滤1 单调性优化1 单调栈10 单调队列3 博弈论22 反向传播1 反素数5 可持久化数据结构5 同构1 后缀和1 后缀数组10 后缀自动机13 哥德巴赫猜想1 四叉树1 回文串2 回文自动机7 图像处理2 图论16 图论基础1 基础图论1 字符串14 字符串DP1 字符串循环同构4 完全背包2 容斥原理5 对拍1 射线法1 尺取2 尺取法10 局部敏感HASH2 峰度1 差分序列1 巴什博奕5 年终总结1 并查集9 并行计算2 康托展开1 康托展开/逆展开2 循环展开1 循环节8 快速乘1 快速幂20 快速筛2 思维1 思维题7 打表2 扩展BSGS2 扩展欧几里得算法8 扫描线4 抽屉原理6 拆点6 拓扑排序7 括号匹配2 指数循环节7 排列组合8 推荐系统3 数位DP17 数值计算方法2 数字图像处理2 数据压缩1 数据结构2 数论2 文明1 斐波那契7 斜率优化3 无向图的环3 曼哈顿距离4 最大独立集1 最大连续区间和3 最大连续和1 最小生成树2 最小表示法7 最小覆盖子串3 最小覆盖子矩形1 最小路径覆盖2 最小顶点覆盖2 最短路5 最长下降子序列1 最长公共字串4 最长路2 构造22 枚举子集4 染色问题1 栈1 树套树1 树形DP6 树状数组20 树的直径9 梯度下降1 概率13 模型转换1 模拟24 模拟退火5 次小生成树2 欧拉函数4 欧拉路1 正则表达式1 母函数21 水5 水题7 泰勒展开3 游戏1 激活函数1 爬山法1 爬虫2 状压DP1 状态压缩1 百度1 矩形周长并1 矩形面积交1 矩阵20 矩阵快速幂5 离散化11 符号可见性1 符号表1 第二类斯特林数1 筛法1 系统调用1 线段树43 组合数学10 组合模式1 组成原理1 细节题1 结论题1 编译原理1 编译器1 置换群1 莫队算法10 蓄水池抽样1 虚点1 裴蜀定理5 观察者模式1 计数排序2 计数问题10 计算几何20 计算机视觉2 计组1 记忆化搜索2 设计模式2 贝尔数2 贪心1 费马小定理3 费马点1 路径DP1 路径记录2 输入挂2 辛普森积分2 连通性2 逆元5 逆序对5 递推2 重心1 链式前向星1 错排公式2 面试1 面试经历3 预处理1 高斯消元1 高精度2
[A~Z][0~9]
111qqz的小窝

Copyright  111QQZ的小窝. All Rights Reserved