计算机(网络)的文章分为了三部分:
此为第二部分。
计算机(网络)的文章分为了三部分:
此为第二部分。
C++ 56, Matlab 26, Python 24, Excel 20, VBA 14, 数据库 12, 办公自动化 10, folly 9, 编程和算法效率 9, Linux 8
/tmp文件夹就会特别乱。动则成千上万的文件,连删除清空都很困难,因为rm /tmp/* -rf导致命令行过长。
=。如果全文对齐,可以用ggvG=(ggvG可以选中全文)。但对于某些复杂的代码(比如html),其对齐可能会乱。
rsync命令同步文件夹时:
request.post提交json数据:
s2就是一个普通的pandas.DataFrame,可以继续处理:
axios.get:
json库处理 JSON 很方便,但它只支持标准的 JSON 格式。rapidjson 库来自于 json 的 C++库,速度比json库快五倍,而且支持一些非标准的 JSON 字符串。
<leader>c快速切换注释状态(不是注释就改成注释,已经是注释则取消注释):
[first, last)(first、last都是iterator,可简单理解为位置指针),以及指定值v,标准库直接提供二分查找的函数std::lower_bound和std::upper_bould:
std::getline或者简单的std::cin >>获取用户输入,有一个问题是,它会阻塞掉整个程序,用户必须有输入后才能继续执行。如果这个输入是单独的线程,它还会阻止整个程序的退出。
std::vector有两个大小:
path是一个已存在的文件夹),但处理结果会有所差异。
unicode字符串,以下将不再重复强调。
threading.Thread:
abc定义了类似于 C++的纯虚函数的功能:
popen函数可以获取比std::system函数更详细的程序输出。只是正常调用 popen 只能获取 stdout 的输出,而 stderr 的输出被忽略。
imp.load_source在动态载入 python 模块时非常有用,但需要注意其特性。
ldd bin/auto应该是下面的结果:
fmt::format格式化库,由于效率高,功能强大,相关的 API 已经进入C++20,但其文档和 API 细节无法恭维。
popen是否正常执行:
Python的命令行包argparse内置了-h, --help命令。但它没有分组,和其它的命令混在一起,并且显示在最前面。我更喜欢把它放在单独的「LOG 和帮助」分组:
sys.path里的位置,直到找到模块为止。下面命令可以查看当前的搜索路径:
boost的命令行库program_options解析命令行,在解释布尔命令行时使用下面代码:
boost和folly库都采用了这种方式:
std::shared_ptr有三个缺陷:
std::shared_ptr使用了和数据无关的引用计数,这带来两个问题:
timespec_get,可参考https://zh.cppreference.com/w/c/chrono/timespec_get。
folly::MicroSpinLock,而folly:PicoSpinLock则只需要一个位!实现代码在https://github.com/facebook/folly/blob/master/folly/synchronization/PicoSpinLock.h。
C++中运行系统命令,可以直接使用std::system函数:
folly::MicroSpinLock,代码文件地址:https://github.com/facebook/folly/blob/master/folly/synchronization/MicroSpinLock.h。
folly::small_vector,代码文件地址:https://github.com/facebook/folly/blob/master/folly/small_vector.h。
std::thread是 C++ 11 新引入的标准线程库。在同样是 C++ 11 新引入的 lambda 函数的辅助下,std::thread用起来特别方便:
std::string还是folly:fbstring都做了SSO( small string optimization )。而folly::FixedString是一个很有意思的实现,它可以把任意长度的字符串都放在堆上。代码可见https://github.com/facebook/folly/blob/master/folly/FixedString.h。
folly::MicroLock,代码文件地址:https://github.com/facebook/folly/blob/master/folly/MicroLock.h。
std::tuple的原理并不复杂,但有些细节非常有意思。其中有一个是至少在gnu C++ std的实现中,std::tuple是倒序存储的:
std::unique_ptr, C++的程序就不应该出现普通指针了。所有普通指针都可以用std::unique_ptr代替,避免手动删除对象。
folly::fbstring是一个完全兼容std::string的类,可以做到无缝替换,而且性能更高。其代码参见https://github.com/facebook/folly/blob/master/folly/FBString.h。
folly::dynamic提供类似于C++的动态类型。和std::any可以容纳任意类型不一样,folly::dynamic只支持保存以下几种类型:
javascript以及Python 3.6+中,所有的dict都保留了插入顺序。但在 C++中,无论是std::map还是std::unordered_map,都没有保留插入顺序。当遍历时,std::map得到的是一个根据键值排序的有序序列,而std::unordered_map则基本是乱序。
javascript以及Python 3.6+中,所有的dict都保留了插入顺序。但在 C++中,无论是std::map还是std::unordered_map,都没有保留插入顺序。当遍历时,std::map得到的是一个根据键值排序的有序序列,而std::unordered_map则基本是乱序。
folly::sorted_vector_set和folly::sorted_vector_map,是std::map和std::set在小数据集上的优化版。代码见:
https://github.com/facebook/folly/blob/master/folly/sorted_vector_types.h。
/opt/ 目录下。
md5sum检验文件内容时,原始文件和目标文件的内容并不一样。
armadillo是一个线性代数 C++库,封装了blas和lapack,提供更直观的接口。
git经常出现类似于HEAD detached at origin/development的错误提示。这是因为当前的 HEAD 没有位于任何一个分支上的缘故。
pypyodbc会爆下面错误:
C++11引入的一种初始化方法。
protected或public。
parfor适用于
startup.m。在这个脚本里可以自动修改当前目录,修改显示方式等等。比如
which函数可用来获取 Matlab 函数的全路径(包含路径和文件名)。
VBA在出错时会停留在出错之处。Excel/VBA 提供On Error关键词来处理程序运行过程中的错误,具体有下面两种用法:
ipconfig /all来举例,这条命令行语句用来获得机器的网路配置信息,包括 IP、网关等信息。它可以替换成任何一个 bash 脚本和命令行代码。