c++
文章平均质量分 73
微book
个人博客移至http://yanglusheng.com/
展开
-
重新学习《C++Primer5》第15章-面向对象程序设计
重新学习《C++Primer5》第15章-面向对象程序设计15.1 OOP:概述1.继承 派生列表:类定义后面 2.动态绑定 动态绑定:使用基类引用(或指针)调用一个虚函数时。15.2 定义基类和派生类15.2.1 定义基类#include<iostream>#include<string>using namespace std;class Quota{public:原创 2016-03-16 12:44:17 · 1388 阅读 · 2 评论 -
5个常用的排序算法总结
1.插入排序基本思想:插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 void insertSort(vector<int>& nums){ int k = 0; for (int i = 0; i < nums.size(); ++i) { int temp = nums[i]; int j原创 2016-07-27 11:01:23 · 797 阅读 · 0 评论 -
数据结构与算法-5大常用算法总结
1.贪心算法基本思想:贪心算法分阶段工作,在每一阶段,可以认为所做的决定是好的,而不考虑将来的后果。意味着选择的是局部最优,如果刚好是全局最优则算法正确,否则得到的是一个次优解。所有可以应用于不需要得到最佳答案,用贪心算法生成近似答案。1.1简单的作业调度问题问题:给出n个任务和每个任务的开始和结束时间。找出可以完成的任务的最大数量,在同一时刻只能做一个任务。vector<int> findComp原创 2016-07-26 10:18:52 · 4108 阅读 · 0 评论 -
Static关键字所有用法详解
以前总是对static的涵义模棱两可,不太敢用,也不知道什么地方改用,static用法非常广泛,静态变量、静态成员、静态函数等,如果用的好,会是程序提升一个等级,并且可以解决很多实际问题,比如单例模式...所以在这里进自己目前的理解做一个总结:用法1:原创 2016-07-13 10:22:54 · 10334 阅读 · 0 评论 -
关于虚函数的总结
虚函数可以实现多态特性,因此在设计模式中很有用,配合继承的特性可以提供很好的解决方案 1.impure virtual基类指定接口和缺省的实现方式,派生类重载基类中的虚函数,定义自己的实现方式,然后通过基类指针指向从而实现多态。class Man{public: virtual void sayHello() { std::cout << "Hello" <原创 2016-06-14 21:54:10 · 403 阅读 · 0 评论 -
重新学习《C++Primer5》第12章-动态内存
12.1动态内存与智能指针12.1.1 shared_ptr类1.智能指针也是模板,定义方式一样 2.make_shared<>最安全的分配和调用方法auto p=make_shared<vector<string>>();//指向一个动态分配的空vector3.引用计数auto r=make_shared<int>(42);r=q;//递增q指向的对象的引用计数;递减r指向的引用计数原创 2016-06-01 10:47:50 · 1179 阅读 · 0 评论 -
重新学习《C++Primer5》第11章-关联容器
11.1 使用关联容器void Chapter11In1(){/*vector和map的不同:vector相当于一个数组,采用顺序存储。优点:不需要分配存储空间也可以向数组一个存取,并且可以动态操作,节省空间 确定:插入、删除操作效率低,添加只能在最后map由一个健值和一个映照数据一一对应关系组成,数据结构采用红黑树实现,健值不允许重复,比较元素只对健值比较list:采用链式存储,存储不连续原创 2016-05-18 11:11:30 · 582 阅读 · 0 评论 -
重新学习《C++Primer5》第10章-泛型算法
10.3 lamdba捕获1.值捕获int sz = 5;cout<<count_if(words.begin(), words.end(), [sz](const string &s){return s.size() >= sz; })<<endl;2.引用捕获 3.可变lamdbaauto fun = [sz]()mutable->bool{while (sz == 0)--sz;原创 2016-05-16 10:40:19 · 544 阅读 · 0 评论 -
重新学习《C++Primer5》第16章-模板与泛型编程
16.1定义模板16.1.1 函数模板1.模板的定义:template<typename T1,class T2>.... 2.实例化模板函数: 3.非类型模板参数:template<unsigned N,unsigned M>当一个模板被实例化时,非类型参数被一个用户提供的或编译器推断的值所代替。模板实参必须是常亮表达式 4.两个重要原则:模板中的函数参数是const的引用函数体中的添加原创 2016-03-30 16:07:04 · 965 阅读 · 0 评论 -
重新学习《C++Primer5》第6章-函数
6.1 函数继承1.局部静态对象size_t count(){ static size_t ctr=0; return ++ctr;}int main(){ for(size_t i=0;i<10;++i) cout<<count()<<endl return 0;}//输出1到10的数字局部静态对象第一次经过初始化,如果没有被显示初始化,则原创 2016-04-13 16:58:42 · 862 阅读 · 0 评论 -
《Effective C++》阅读笔记03
4 设计与声明1.让接口容易被正确使用,不易被误用类的实际考虑全面,客户出错应该指出“促进正确使用”的办法包括接口的一致性,以及内置类型的行为兼容;shared_ptr指出定制删除器。2.设计class犹如设计type考虑三五法则的设计考虑继承和派生考虑访问private、protected、public考虑多态性考虑类型转换……3.pass-by-reference-to-c原创 2016-04-08 11:38:39 · 406 阅读 · 0 评论 -
重新学习《C++Primer5》第8章-IO库
8.1 IO类1.IO对象不能拷贝或赋值ofstream out1,out2;out1=out2;//错误:不能对流对象赋值ofstream print(ofstream);//错误out2=print(out2);//错误因此通常以引用方式传递和返回流。读写一个对象通常会改变其状态,所以不能是const reference。 2.原创 2016-04-29 14:44:34 · 487 阅读 · 0 评论 -
重新学习《C++Primer5》第7章-类
7.1 定义抽象数据类型7.1.1 设计Sales_data类1.一个设计良好的类,既要有直观且易于使用的接口(对于用户来说),也必须具备高效的实现过程 2.原创 2016-04-21 10:51:43 · 644 阅读 · 0 评论 -
重新学习《C++Primer5》第9章-顺序容器
9.1 顺序容器1.vector和string采用顺序存储,可通过下标访问,但插入和删除会很耗时。 2.list和forward_list不支持随机访问,添加和删除很快 3.deque支持快速随机访问,中间位置添加和删除代价很高,但两端添加和删除很快 Note:通常,使用vector是最好的选择,除非有更加合适的理由选择其它容器(根据容器的特性);如果不确定使用哪种容器,可以只使用vector原创 2016-05-05 17:00:46 · 828 阅读 · 0 评论 -
重新学习《C++Primer5》第1-5章
第一章 开始1.输入输出 流:随着时间的推移,字符是顺序生成或消耗的;std::cout<<"Hello World"<<std::endl;<<运算符接受两个运算对象,左侧必须是ostream,右侧是要打印的值,计算结果返回ostream对象中。上述使用两次<<运算符,第一次运算结果成了第二次的左侧对象。 Note:在写重载<<运算符是要返回ostream& endl效果:结束当前行,并将与原创 2016-04-11 17:29:27 · 1259 阅读 · 0 评论 -
《Effective C++》阅读笔记02
2.1 构造析构和赋值运算default版本: 编译器可以创建default构造、copy构造、copy assignment操作符,以及析构。但是当成员为引用或者const时,编译器不知如何在生成的赋值函数内面对它们。拒绝编译器生成default函数 将相应的成员函数声明为private,并且不予实现。多态基类声明为virtual的析构函数原创 2016-04-06 14:32:57 · 383 阅读 · 0 评论 -
同名标靶点自动匹配算法实现-三点匹配
1.两个标靶数据 2.匹配结果 3.代码#include <iostream>#include <vector>#include <math.h>using namespace std;struct Point{ int id; float x,y,z; Point(int _id,float _x,float _y,float _z):id原创 2016-09-28 17:53:38 · 2853 阅读 · 0 评论