Posts

【C++学习与应用总结】13: Scoped Enum

19 Feb 2016

#前言 从C++11开始,enum分为两种:

  • Unscoped Enum: “旧式”Enum,在C++11之前直接使用enum关键字定义的枚举
  • Scoped Enum: C++11开始引入的强类型枚举,使用关键字enum class或者enum struct定义的枚举
前面的文章总结了”Unscoped Enum”的使用,本文将针对Scoped Enum的使用来总结。 ...

阅读全文 ...


【C++学习与应用总结】12: Unscoped Enum

19 Feb 2016

#前言 本文总结了C++中的枚举类型enum在编程中的运用。从C++11开始,enum分为两种:

  • Unscoped Enum: “旧式”Enum,在C++11之前直接使用enum关键字定义的枚举
  • Scoped Enum: C++11开始引入的强类型枚举,使用关键字enum class或者enum struct定义的枚举
本文针对Unscoped Enum的使用来总结,不会涉及基本的语法细节。 ...

阅读全文 ...


TotalCommander使用总结

16 Feb 2016

#前言 本文总结了使用TotalCommander过程中的一些技巧。 先挖坑,再补充!

Tricks

  1. 修改配置文件,实现隐藏文件的显隐。
...

阅读全文 ...


Problems I met during upgrading jekyll from 2 to 3

07 Feb 2016

2.x to 3.x 主要变化

  • redcarpet ---> kramdown (the only markdown engine)
  • pygments ---> rouge
...

阅读全文 ...


【C++ STL应用与实现】2: 如何使用std::vector

06 Feb 2016

本系列文章的目录在这里:目录. 通过目录里可以对STL总体有个大概了解

前言

本文介绍vector容器。vector是STL容器中最为常用的一个,它是序列式容器的代表,是对动态数组的抽象封装。

vector 是什么

vector是一个class template,要用它需包含#include <vector>

基本用法及常识

创建 & 增删改查

// 使用初始化列表(initializer list) since C++11
// 更多创建方式见参考链接
vector<int> vi {1, 2, 3};

// 增
for (int i=4; i<10; ++i) {
    vi.push_back(i);
}

// 打印内容
printContainer(vi, "init, vi: ");

// 查 & 改, random access and modify
vi[0] = 10;

// 删
// 删第一个元素
auto iter = vi.begin();
vi.erase(iter);
printContainer(vi, "erase begin, vi: ");

// use <algorithm> std::find to locate pos of 5 in vi.
// 删值为5的元素
iter = find(vi.begin(), vi.end(), 5);
if (iter != vi.end()) {
    pln("erase 5");
    vi.erase(iter);
}
printContainer(vi, "erase 5, vi: ");
...

阅读全文 ...