几个优雅的C++ STL算法代码

几个使用C++11的算法例子,收藏下。

插入排序(Insertion Sort)

代码:

1
2
3
4
template <class FwdIt> void insertSort(FwdIt first, FwdIt last) {
for (auto i = first; i != last; ++i)
std::rotate(std::upper_bound(first, i, *i), i, std::next(i));
}

阅读全文

《TCP IP高效编程————改造网络程序的44个技巧》学习记录

  • 技巧1:理解面向链接和无连接协议之间的区别

    • 对于无连接协议来说,每个分组的处理都独立于所有其他分组,而对于面向连接的协议来说,协议实现维护了与后继分组有关的状态信息。
    • 对TCP来说,连接完全是想象的,它是由端点所记忆的状态组成的, 并不存在“物理”连接。

阅读全文

cpp目录结构及工具相关的一些工程经验总结

在开发Linux环境下cpp组件时,自己形成了一套模式框架,对于常规项目开发可以方便套用。

工具

    阅读全文

    网络上的一些学习资料列表

    GitHub

    • mymmsc/books,存储了一些经典书籍,包括《深度学习》,《TCP/IP详解》。

    阅读全文

    golang目录结构及工具相关的一些工程经验总结

    在开发golang组件的时候需要版本管理及组件管理,自己形成了一套模式框架,对于常规项目开发可以方便套用。

    工具

      阅读全文

      Makefile中重复创建目录提示错误的解决方案

      如题,我们经常需要在构建脚本Makefile中创建目录。例如下面一段脚本:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      deps:
      git submodule update --init --recursive
      mkdir -p out
      build:
      cd out && cmake -DBUILD_TESTING=OFF ../ && make -j8
      package: deps build
      clean:
      rm -rf out/*

      阅读全文

      pip国内下载失败超时等问题的解决方案

      可以通过国内开源镜像来下载python的库,操作步骤如下:

      1
      2
      mkdir ~/.pip
      vim ~/.pip/pip.conf

      阅读全文

      交叉编译工具远程调试小结

      我们在开发ARM板子C/C++项目过程中,我们会需要查找定位BUG,一种方式是通过网络发送日志;另一种方式是通过调试方式,而很多板子没有执行GDB性能,
      因此我们需要远程调试的方式来进行调试。现在总结下项目中使用的两种方式。

      调试可执行程序

        阅读全文

        git status中文显示不对问题修复

        如题,我的mac上git status显示

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        ➜ hexo git:(master) ✗ gst
        On branch master
        Changes not staged for commit:
        (use "git add/rm <file>..." to update what will be committed)
        (use "git checkout -- <file>..." to discard changes in working directory)
        (commit or discard the untracked or modified content in submodules)
        modified: _config.yml
        modified: package-lock.json
        modified: package.json
        deleted: source/_posts/hello-world.md
        deleted: "source/_posts/\346\265\213\350\257\225\344\275\277\347\224\250-md.md"
        deleted: "source/_posts/\347\254\254\344\272\214\344\270\252\346\265\213\350\257\225.md"
        modified: themes/maupassant (modified content)
        modified: themes/next (untracked content)
        Untracked files:
        (use "git add <file>..." to include in what will be committed)
        "source/_posts/emacs\346\217\222\345\205\245\345\275\223\345\211\215\346\227\266\351\227\264\346\210\263.md"
        "source/_posts/\344\277\256\345\244\215GO\345\214\205\347\256\241\347\220\206\345\267\245\345\205\267GLIDE\344\270\215\350\203\275\350\256\277\351\227\256golang.org\347\232\204\346\233\277\344\273\243\346\226\271\346\241\210.md"
        source/about/
        no changes added to commit (use "git add" and/or "git commit -a")

        阅读全文

        emacs插入当前时间戳

        1
        C-u M-! date

        阅读全文