Cheng's Notes

  • 首页

  • 归档

  • 标签

  • 分类

  • 搜索

C++11 —— override和final

发表于 2016-04-29 | 更新于 2018-11-19 | 分类于 程序设计

override

  • 多态行为的基础:基类声明虚函数,派生类声明一个虚函数覆写该虚函数
  • 覆盖要求:函数签名一致(函数签名包括:函数名、参数列表、const)
阅读全文 »

如何释放vector的闲置空间

发表于 2016-04-29 | 更新于 2018-11-19 | 分类于 程序设计

std::vector的容量操作

C++ STL容器vector对于容量的操作是只增不减,如下面的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vector<int> v;
v.push_back(12); // capacity: 1
v.push_back(22);// capacity: 1 * 2 = 2
v.push_back(32);// capacity: 2 * 2 = 4
cout << v.capacity() << endl; // 4
v.insert(v.begin(), 12, 86);
cout << v.capacity() << endl; // 15
// 删除第 3 个到倒数第 2 个元素(不含)之间的所有元素
v.erase(v.begin() + 2, v.end() ­- 2);
cout << v.size() << endl; // size: 4
cout << v.capacity() << endl; // 15 <­­­ #1
v.clear();
cout << v.capacity() << endl; // 15 <­­­ #2
v.reserve(0);
cout << v.capacity() << endl; // 15 <­­­ #3
阅读全文 »

开发者应该具备的15个编程好习惯

发表于 2016-04-29 | 更新于 2018-11-19 | 分类于 文章摘录
  • 动手编码之前,你需要对要编码实现的解决方案有一个正式的或粗略的设计。永远不要在没有任何设计的前提下就开始编码,除非所编代码不重要。
  • 优秀的代码文档跟编程语言知识一样重要。在代码源文件中,为每个主要的代码段添加注释,解释代码的基本逻辑。最好注明程序的构建和修改日期,以及修改的原因也是非常有必要的。
阅读全文 »

Python高级编程(六)

发表于 2016-04-29 | 更新于 2018-11-19 | 分类于 Python

使用zc.buildout

zc.buildout原理

virtualenv对于隔离一个python环境相当方便。zc.buildout提供了相同的隔离功能,并且进一步提供了:

  • 一个简单的、在一个配置文件中定义这些依赖性的描述性语言
  • 提供链接代码调用组合的输入点的插件系统
  • 一种部署和发行应用程序源代码及其执行环境的方法
阅读全文 »

Python高级编程(五)

发表于 2016-04-29 | 更新于 2018-11-19 | 分类于 Python

编写一个应用程序

Atomisator概述

整体描述

工作环境

编写各个包

分发Atomisator

包之间的依赖性

小结

Python高级编程(四)

发表于 2016-04-28 | 更新于 2018-11-19 | 分类于 Python

编写一个包

用于所有包的公共模块

setup.py模板:

1
2
from setuptools import setup
setup(name='tools.name')
阅读全文 »

Python高级编程(三)

发表于 2016-04-28 | 更新于 2018-11-19 | 分类于 Python

选择好的名称

PEP8和命名最佳实践

命名风格

阅读全文 »

Python高级编程(二)

发表于 2016-04-28 | 更新于 2018-11-19 | 分类于 Python

语法最佳实践——类级

子类化内建类型

访问超类中的方法

super是一个内建类型,用来访问属于某个对象的超类中的特性(attribute),虽然它的使用与函数类似,但是它实际上仍然是一个内建类型。

阅读全文 »

Python高级编程(一)

发表于 2016-04-28 | 更新于 2018-11-19 | 分类于 Python

语法最佳实践——低于类级

列表推导(List Comprehensions)

1
[ i for i in range(10) if i % 2 == 0]

每当要对序列中的内容进行循环处理时,就应该尝试用List Comprehensions来代替它。

阅读全文 »

Electron快速入门

发表于 2016-04-28 | 更新于 2018-12-23 | 分类于 Nodejs

Electron简介

Electron是一种可以使用网页技术来开发跨平台桌面应用的解决方案,用html,css和js就可以写桌面应用。

阅读全文 »
12

Pony Cheng

Hear all parties.

20 日志
4 分类
9 标签
© 2016 – 2018 Pony Cheng
由 Hexo 强力驱动
|
主题 – NexT.Pisces