chenxfeng's blog


  • 首页

  • 归档

  • 标签

  • 搜索

C++中的野指针(转)

发表于 2017-07-12

转:http://www.cnblogs.comyc_sunniwellarchive201006281766854.html

模板(十一):函数配接器

发表于 2017-07-08

标准库提供用于简化使用函数对象的繁杂的过程的类和函数

为什么是函数对象

  • 可以把一个函数和一个值捆绑到单个实体中

    • 如果把值n放到具有一个文件作用域(file scope)的变量中也可以使用函数
1
2
3
4
5
6
static int n;
static int add_n(int x) {
return x + n;
}
transform(a, a+100, a, add_n);
  • 不方便
阅读全文 »

命题逻辑的形式结构和规律特征

发表于 2017-07-08
  • 命题逻辑: 在研究考察逻辑形式时把一个命题只分析到其中所含的命题成分为止
    • 不把简单命题再分析为非命题成分的结合
    • 不把谓词和量词等等非命题成分分析出来
1
2
3
如果p,那么q
p
所以q
阅读全文 »

模板(十):函数对象

发表于 2017-07-07
  • STL提供函数对象(function obeject)
    • 提供一种方法,将要调用的函数与准备传递给这个函数的隐式参数捆绑起来
  • 函数对象表示一种操作,通过组合函数对象可以得到复杂的操作

    • 运行时处理大量的循环和条件语句、调用函数的程序块的组合对效率不利
阅读全文 »

模板(九):迭代器配接器

发表于 2017-07-06

迭代器配接器(iterator adaptor): 把迭代器作为参数并转换为其他迭代器的模板

阅读全文 »

模板(七):泛型迭代器

发表于 2017-07-05
  • 了解其他的算法,分析各自对相应模板参数类型强加的行为
  • 区分各类不同的泛型算法所要求的不同泛型迭代器
阅读全文 »

模板(八):泛型迭代器的使用

发表于 2017-07-05
  • 一个小程序,使用不同类型迭代器做不同的事
1
2
3
4
5
6
7
// 复制顺序的数据结构
template <class In, class Out>
Out copy(In start, In end, Out dest) {
while (start != end)
*dest++ = *start++;
return dest;
}
  • 调用例子
1
2
3
4
5
6
7
8
9
10
11
12
int main() {
char* hello = "Hello ";
char* world = "world";
char message[15];
char* p = message;
p = copy(hello, hello + 6, p);
p = copy(world, world + 5, p);
*p = '\0';
cout << message << endl;
}
阅读全文 »

模板(五):抽象接口

发表于 2017-07-04

前面探讨了模板的经典用途: 建立容器类

  • 描述一个或一组程序的接口的通用方式
  • 使用模板提供抽象接口,可以写出独立于任何一种实际类型的函数
阅读全文 »

模板(四):序列

发表于 2017-07-04

容器类应该包含对象,而迭代器类的对象标识容器中的位置

  • Seq类: 精简指令集容器类,模仿纯Lisp中的列表(list)
阅读全文 »

模板(六):抽象接口

发表于 2017-07-04

1994年7月,安大略基奇纳召开的C++标准会议
通过Alex Stepanov提出的提议:
将他和他的同事们在Hewlett-Packard实验室开发的一系列泛型算法作为一部分收录到标准C++库中
标准模板库(Standard Template Library, STL)

  • 泛型算法: 一种以对它所作用的数据结构尽可能少的假设的方式表达的算法

  • 模板使某种程度的泛型(genericity)更加容易

  • 编写与所排序的值的类型无关的程序的一种典型方法

阅读全文 »
1…456…10
chenxf

chenxf

93 日志
16 标签
GitHub Weibo
© 2017 — 2023 chenxf
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.2