![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++ Primer
文章平均质量分 52
huangwwu
这个作者很懒,什么都没留下…
展开
-
第二部分——第十章/关联容器
通过键存储和读取元素,而顺序容易则通过元素在容器中的位置来存储和访问元素,map/set/multimap/multiset1:pair类型,包含两个数据成员first/second,都是公有的,可以是不同类型 pair p1(v1, v20 除构造函数外,还可以使用成员函数make_pair(v1, v2)来创建新的pair对象 2:map 键——值对的原创 2012-07-10 19:29:01 · 327 阅读 · 0 评论 -
C++类型转换
1. 隐式类型转换1) 算数转换:在混合类型的算术表达式中, 最宽的数据类型成为目标转换类型2) 赋值转换:目标类型是被赋值对象的类型3) 参数传递转换:形参和实参类型不一致:目标转换类型为形参的类型4) 函数返回值转换:目标转换类型为函数的返回类型2. 显式类型转换(强制类型转换) C 风格:(type)expression C++风格:cast原创 2015-04-12 00:12:16 · 443 阅读 · 0 评论 -
贪心算法原理
设计贪心算法的三个步骤 将最优化问题转化为这样的形式:对其做出一次选择后,只剩下一个子问题需要求解(比较重要的一步) 证明作出贪心选择后,原问题总是存在最优解,即贪心选择总是安全的 证明作出贪心选择后,剩余的子问题满足性质:其最优解与贪心选择组合即可得到原问题的最优解,这样就得到了最优子结构两个关键因素1. 贪心选择性质:可以通过做出局部最优(贪心)选原创 2015-04-12 00:11:00 · 4328 阅读 · 0 评论 -
C++函数参数个数不定
1. 参数为同一种类型的:initializer_list lst 有几个方法可以调用:lst.size();lst.begin();lst.end()2. 参数为不同类型的 用省略号指定参数列表: void fun(...); void fun(param_list, ...); 有几个相关的宏定义 typ原创 2015-04-11 21:23:04 · 3107 阅读 · 0 评论 -
C++ 数据类型
1. 数据转换1) 给一个某种type的变量赋值超过它所能表示的范围,则该变量的值为undefined 然而有些编译器检测不到这种错误,而且在某些情况下能正常运行;但随时都可能发生错误导致程序crash2) 特别注意signed与unsigned数据的操作 unsigned和signed进行运算,signed会自动转化为unsigned;而两个unsigned相减,得不原创 2015-04-11 21:20:09 · 452 阅读 · 0 评论 -
vector/array
1. 几种初始化方式 vector v1; vector v2(v1); vector v3= v1; vector v4(n); vector v5(n, value); vector v6{a, b, c}; vector v7 = {a, b, c};2. 迭代器iterator vector::it原创 2015-04-11 21:21:45 · 462 阅读 · 0 评论 -
#ifndef #define #endif
#ifndef _TEST_H#define _TEST_H//一般是文件名的大写 头文件结尾写上一行:#endif这样一个工程文件里同时包含两个test.h时,就不会出现重定义的错误了。分析:当第一次包含test.h时,由于没有定义_TEST_H,条件为真,这样就会包含(执行)#ifndef _TEST_H和#endif之间的代码,当第二次包含test.h时前面一次已经定原创 2015-04-11 21:21:03 · 459 阅读 · 0 评论 -
C++变量
1. 初始化:在创建的时候同时赋值1) 初始化中的"="与赋值的"="意义不同2) 定义一个变量,如果不赋初值 内建类型:函数外定义的初始值为0,函数内定义的不初始化(为undefined,复制或者操作该对象会出错)2. 声明和定义1) 带有赋初值的声明(declaration)为定义(definition)2) 赋初值会覆盖exter原创 2015-04-11 21:20:28 · 440 阅读 · 0 评论 -
第二部分——第十一章/泛型算法
#include“泛型”:可操作在多种容器上1) find() 依赖迭代器和迭代器操作实现,本身不执行容器操作2) accumulate() 三参数,头两个元素是累加的元素范围,第三个参数是累加的初值3) find_first_of() 四参数,在第一段范围内查找与第二段范围中任意元素匹配的元素,返回一个迭代器4) fill() 三参数,头两个元素原创 2012-07-10 19:28:46 · 360 阅读 · 0 评论 -
第一部分——基本语言
由于学习过C++高级程序设计语言相关课程,因此在阅读本书时,仅将个人觉得生疏,需要学习的部分摘取出来 1:枚举枚举成员的默认常值,第一个值为0,后面的以递增的自加、也可以指定某一个成员的值,从该成员开始值递增枚举成员值可以是不唯一的 2:预处理器:用指定的头文件的内容替代每个#include一个头文件可能被多次包含,为了避免名字冲突,需引入一些额外的预处理器设施原创 2012-07-10 19:27:56 · 356 阅读 · 0 评论 -
第二部分——第九章/顺序容器
1:三种顺序容器 vector list deque(双端队列) 及对应适配器 stack queue priority_queue 初始化除了有默认构造函数外,还有其他容器构造函数,如:C c(c2)复制构造函数 C c(b,e)创建c,其元素是迭代器b和e标本的范围内元素的副本,C c(n, t)用n个值为t的元素创建容器c C原创 2012-07-10 19:29:23 · 391 阅读 · 0 评论 -
switch-case中变量的初始化
switch case结构中,case后面不能声明初始化的变量,比如 case true: string str; //错误,隐式初始化 int a = 0; //错误,显式初始化 int b; //正确,没有初始化如果想声明初始化的变量,需用{}将其包含起来原创 2015-04-12 00:12:39 · 2057 阅读 · 0 评论