C++
文章平均质量分 60
梁朝伟啊
一个计算机菜鸟
展开
-
不断更新有关STL中的算法 20180330 1.1
for_each(a,b,c); // a b 均为迭代器若从开始到结束就是 begin到end c 是一个函数对象或者回调函数vector<int>::iterator it;it=find_if(v1.begin(), v1.end(), Exp()); //find_if 返回一个迭代器transform(v1.begin(), v1.end(), v2....原创 2018-03-29 16:17:11 · 126 阅读 · 0 评论 -
C++ 有关于STL中 迭代器的基本介绍 20180321day11
/*迭代器的总结*/1 iterator====>正向迭代器 正向遍历中 begin() 指向容器的首个元素end() 指向容器最后一个元素的后面一个内存 当 it = a.end() 的时候就已经代表遍历完毕2 reverse_iterator====> 逆向迭代器 逆向遍历中 rbegin() 指向容器的最后一个元素 rend() 指向容器第一个元素的前面一个内存 当 it...原创 2018-03-21 16:36:31 · 122 阅读 · 0 评论 -
C++ for_each() 和 transform() 的比较
for_each()和transform()算法比较1)STL 算法 – 修改性算法for_each() copy()copy_backward()transform()merge()swap_ranges()fill()fill_n()generate()generate_n()replacereplace_if()replace_copy(...原创 2018-03-31 09:59:38 · 653 阅读 · 0 评论 -
C++ 有关string类的基本语法以及一个简单算法 理论加案例的形式
#include<iostream>using namespace std;#include"string" //string类的头文件#include"algorithm" //算法的头文件//string类的初始化 四种方法void main21(){ string a = "aaaa"; string b("bbbbb"); string c = b...原创 2018-03-21 14:45:10 · 206 阅读 · 1 评论 -
C++ 标准库中所有 有关库文件的类别及用法 20180321day11
C++标准库的内容分为10类,分别是(建议在阅读中,将你已经用过或听说过的头文件划出来): C1. 标准库中与语言支持功能相关的头文件头文件描 述<cstddef>定义宏NULL和offsetof,以及其他标准类型size_t和ptrdiff_t。与对应的标准C头文件的区别是,NULL是C++空指针常量的补充定义,宏offsetof接受结构或者联合类型参数,只要他们没有...原创 2018-03-21 13:52:28 · 402 阅读 · 0 评论 -
C++ STL 不同容器的比较 以及使用时机
1 deque的使用场景:比如排队购票系统,对排队者的存储可以采用deque,支持头端的快速移除,尾端的快速添加。如果采用vector,则头端移除时,会移动大量的数据,速度慢。 vector与deque的比较: 一:vector.at()比deque.at()效率高,比如vector.at(0)是固定的,deque的开始位置却是不固定的。 二:如果有大量释放操作的...原创 2018-03-25 16:01:07 · 688 阅读 · 0 评论 -
C++ STL 如何安全的将一个含有指针变量的类对象放在容器中? 避免浅拷贝问题
深拷贝浅拷贝问题单纯的使用系统自带的拷贝构造函数会造成两个对象所指内存空间为同一块,在析构的时候一块内存空间就会被析构两次,然后就出现程序的相应中断解决办法:1 重写拷贝构造函数2 重载 = 号操作符#include<iostream>using namespace std;#include"vector"class Student{public: Student(c...原创 2018-03-25 15:54:49 · 524 阅读 · 0 评论 -
C++ STL中涉及到关联容器部分有关multimap的内容
#include<iostream>using namespace std;#include"map"#include<string>/*Multimap 案例 :*///1个key值可以对应多个valude =分组 //公司有销售部 sale (员工2名)、技术研发部 development (1人)、财务部 Financial (2人) //人员信...原创 2018-03-25 14:56:16 · 122 阅读 · 0 评论 -
C++ 涉及到STL 中 map与multimap的基本操作 以及相应的区别 20180325day13
#include<iostream>using namespace std;#include"map" //map的头文件#include"string" //string的头文件//map是一个键值对序列。即(key,value)对,提供基于key的快速检索能力//map是关联式容器 key值唯一 按照顺序插入 不可以按照位置插入//map的具体实现采用红黑树...原创 2018-03-25 14:17:33 · 198 阅读 · 0 评论 -
C++ STL 中有关于for_each() 和 transform() 算法
#include<iostream>using namespace std;#include"functional" //预定义函数对象的函数实现都写在这个库文件当中#include"string"#include<vector>#include<list>#include<algorithm>#include"set"原创 2018-03-30 15:10:03 · 322 阅读 · 0 评论 -
C++ 有关STL中容器vector的操作 初始化 遍历 删除
#include<iostream>using namespace std;#include"vector" //vector的头文件//vector的插入 获取头部尾部元素 删除尾部元素 等操作void main31(){ //定义一个int类型的vector容器 vector<int> a; //插入数据 a.push_back(1);...原创 2018-03-21 16:59:47 · 257 阅读 · 0 评论 -
C++ STL中常用的查找算法
#include<iostream>using namespace std;#include<vector>#include"functional"#include"algorithm"#include<set>//adjacent_find() 在iterator对标识元素范围内,查找一对相邻重复元素,找到则返回指向这对元素的第一个元素的迭代器。...原创 2018-03-31 13:54:35 · 513 阅读 · 0 评论 -
C++ STL中常用的排序算法 20180331 day17
#include<iostream>using namespace std;#include<vector>#include"functional"#include"algorithm"#include<set>#include<string>#include<list>#include<stack&原创 2018-03-31 14:45:29 · 215 阅读 · 0 评论 -
C++ 预定义函数对象以及函数适配器(一)
#include<iostream>using namespace std;#include"functional" //预定义函数对象的函数实现都写在这个库文件当中#include"string"#include<vector>#include<list>#include<algorithm>#include"set"原创 2018-03-29 16:16:01 · 857 阅读 · 0 评论 -
C++中头文件使用""与尖括号的区别
C++中头文件二者区别如下: 1、使用“”是搜索所有目录。 2、使用<>是搜索当前目录。 正常情况下,自行定义的头文件应该用"",因为这些文件放在工程目录(也就是编译器的当前目录)下,而不是放在公共头文件目录下,如果用<>则找不到头文件。而系统提供的头文件,比如库函数的头文件,可以用<>。...原创 2018-03-29 15:46:27 · 713 阅读 · 0 评论 -
C++ 有关于函数对象以及谓词部分练习以及知识点的总结
#include<iostream>using namespace std;#include"algorithm" //算法的头文件#include"functional" //同为算法的头文件#include"set"#include"vector"#include"list"#include"string"//注意:!!!!一定要原创 2018-03-29 15:29:55 · 180 阅读 · 0 评论 -
C++ 有关于谓词的概念 20180329day15
谓词:一元函数对象:函数参数1个;二元函数对象:函数参数2个;一元谓词 函数参数1个,函数返回值是bool类型,可以作为一个判断式谓词可以是一个仿函数,也可以是一个回调函数。二元谓词 函数参数2个,函数返回值是bool类型一元谓词函数举例如下1,判断给出的string对象的长度是否小于6bool GT6(const string &s){return s.size() >= 6;...原创 2018-03-29 14:13:25 · 657 阅读 · 0 评论 -
C++ STL容器部分 有关queue 队列模型的 一些基本API函数的使用
#include<iostream>using namespace std;#include"queue"/*队列queue的特点*/// 先进先出 FIFO//queue基本的API函数的实现void main61(){ queue<int> q1; //入队列 q1.push(1); q1.push(2); q1.push(3); q...原创 2018-03-22 10:42:37 · 358 阅读 · 0 评论 -
C++ STL中容器部分 有关栈模型 Stack的基本用法 20180322 day12
#include<iostream>using namespace std;#include"stack" //stack栈模型的头文件/*stack的基本特点*///1 先进后出//stack基本API函数的使用 压栈 出栈void main51(){ stack<int> s1; //栈的初始化 cout << "压栈" ...原创 2018-03-22 10:25:05 · 149 阅读 · 0 评论 -
C++ STL中容器部分 有关deque(双端数组形式)的初始化 元素插入 遍历 以及distance()函数的使用 20180322day12
#include<iostream>using namespace std;#include"deque" //deque的头文件#include"algorithm" //算法的头文件void printfDeque(deque<int> &d) //方便打印输出进行测试{ for (deque<int>::iterator it...原创 2018-03-22 09:49:01 · 365 阅读 · 0 评论 -
C++STL 常用的算术生成以及集合运算的算法
#include<iostream>using namespace std;#include<vector>#include"functional"#include"algorithm"#include<set>#include<string>#include<list>#include<stack&原创 2018-03-31 16:05:35 · 501 阅读 · 0 评论 -
C++STL 常用的拷贝和替换算法
#include<iostream>using namespace std;#include<vector>#include"functional"#include"algorithm"#include<set>#include<string>#include<list>#include<stack&原创 2018-03-31 15:19:35 · 195 阅读 · 0 评论 -
C++ 关于STL 的设计理念
1) STL的容器通过类模板技术,实现数据类型和容器模型的分离2) STL的迭代器技术实现了遍历容器的统一方法;也为STL的算法提供了统一性奠定了基础3) STL的算法,通过函数对象实现了自定义数据类型的算法运算;所以说:STL的算法也提供了统一性。核心思想:其实函数对象本质就是回调函数,回调函数的思想:就是任务的编写者和任务的调用者有效解耦合。函数指针做函数参数。4) 具体例子:transfor...原创 2018-03-30 13:28:51 · 776 阅读 · 0 评论 -
C++ 预定义函数对象和函数适配器的使用(二)
#include<iostream>using namespace std;#include"functional" //预定义函数对象的函数实现都写在这个库文件当中#include"string"#include<vector>#include<list>#include<algorithm>#include"set"原创 2018-03-30 10:54:07 · 310 阅读 · 0 评论 -
C++ 输入流的 四个函数 get() getline() peek() putback() 20180317 day8
#include<iostream>#include<string>using namespace std;/*标准输入流对象cincin.get() //一次只能读取一个字符cin.get(一个参数) //读一个字符cin.get(三个参数) //可以读字符串cin.getline()cin.ignore()cin.peek()cin.put...原创 2018-03-17 13:13:32 · 936 阅读 · 0 评论 -
C++ 什么是链式操作 20180316day8
1.什么是链式操作链式操作是利用运算符进行的连续运算(操作),它的特点是在一条语句中出现两个或者两个以上相同的操作符,如连续的赋值操作、连续的输入操作、连续的输出操作、连续的相加操作等都是链式操作的例子。链式操一定涉及到结合律的问题,例如链式操作赋值操作满足右结合律,即a=b=c被解释成a=(b=c),而链式输出操作原则满足左结合律,即cout<<a<<b被解释成(cout...转载 2018-03-17 10:47:20 · 426 阅读 · 0 评论 -
泛型编程(模板函数,模板类的套用) Myvector 具体案例 实现可存放int 数组 char数组 类对象数组 以及一组指针
主要通过泛型编程,利用Myvector该模板类,实现可存放int 数组 char数组 类对象数组 以及一组指针Myvector.h#include<iostream>using namespace std;//MyVector 相当于一个容器template <typename T>class MyVector{public: MyVector(int s...原创 2018-03-11 10:58:37 · 748 阅读 · 1 评论 -
解决VS2013报错各种函数 unsafe 函数安全的问题
1 VS2013中使用fopen、sprintf等函数是会出现安全问题:error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help...原创 2018-03-11 09:46:05 · 1737 阅读 · 0 评论 -
C++构造函数详解(拷贝构造函数) 以及有关深拷贝浅拷贝问题详解
构造函数是干什么的该类对象被创建时,编译系统对象分配内存空间,并自动调用该构造函数,由构造函数完成成员的初始化工作,故:构造函数的作用:初始化对象的数据成员。构造函数的种类 1 class Complex 2 { 3 4 private : 5 double m_real; 6 double m_imag; 7 8 public: 9 ...转载 2018-03-11 09:43:47 · 232 阅读 · 0 评论 -
C++ damo_5_继承中的异常_异常的层次结构 20180316 day8
#include<iostream>using namespace std;//关于自己自定义的一个数组类的class MyArray{public: MyArray(int len) //构造函数 在这里抛出异常 { if (len < 0) //抛出异常eNegative { throw eNegative(len); } ...原创 2018-03-16 10:46:54 · 185 阅读 · 0 评论 -
C++ 关于 int char 以及 class 型 异常的抛出 20180315 day7
#include <iostream>using namespace std;//int类型异常的抛出void myCopy(char * to, char *from) //此案例是用来是实现二进制文件copy 结束字符为'\0'{ if (to == NULL) { throw 1; } if (from == NULL) { throw 2;...原创 2018-03-15 16:22:30 · 192 阅读 · 0 评论 -
C++ 异常处理机制(二) 栈解旋 20180315 day7
#include <iostream>using namespace std;/*栈解旋*///意思就是在throw之前不断压栈的数据,在throw之后会依次进行析构//异常被抛出后,从进入try块起,到异常被抛掷前,这期间在栈上的构造的所有对象,都会被自动析构。析构的顺序与构造的顺序相反。class Test3{public: Test3(int a, int ...原创 2018-03-15 14:44:31 · 313 阅读 · 0 评论 -
C++ 异常的处理 基本语法 与注意准则
#include<iostream>using namespace std;/*知识点*///1 发生异常之后 是跨函数的 例如在下面测试案例中,用ceshi()函数作为过渡,当有异常的情况下,设置断点发现直接从chu()函数的try调到main的catch中,不再进行ceshi()函数的一个过渡//2 接受异常之后可以不处理,继续抛出 直接写throw 不做...原创 2018-03-15 12:34:52 · 269 阅读 · 0 评论 -
C++ 关于标准输入输出流 20180317 day8
例:用流控制成员函数输出数据。int main( ){ int a=21; cout.setf(ios::showbase);//显示基数符号(0x或) cout<<"dec:"<<a<<endl; //默认以十进制形式输出a cout.unsetf(ios::dec); //终止十进制的格式设置 cout.setf(ios::hex); //设置...原创 2018-03-17 14:09:06 · 156 阅读 · 0 评论 -
C++ 文件的基本读取操作
首先展示一个小的案例#include<iostream>#include "fstream" //文件读取的头文件using namespace std;int main(){ ofstream fpo("f://14.txt",ios::ate); //建立一个输出流对象和文件关联 只有一个参数 默认情况下后面为ios::out if ( fpo.f...原创 2018-03-17 14:47:45 · 1012 阅读 · 0 评论 -
C++ 二进制文件的读写 实现类的序列化 20180317day8
#include<iostream>#include"fstream" using namespace std;/*二进制文件的读写 实现类的序列化*/class Teacher{public: Teacher() //默认构造函数 { this->age = 33; strcpy(name, ""); } Teacher(int age...原创 2018-03-17 15:33:05 · 800 阅读 · 0 评论 -
C++ STL有关于multset部分 MULTSET
#include<iostream>using namespace std;#include"set" //multset的头文件/*muleset 总结*///1 multset与set的区别主要是没有元素唯一性的区别//2 multset同时也可以实现对于元素的一个自动排序 默认从小到大 修改方式见之前有关set的博客即可//multset的基本操作vo...原创 2018-03-23 13:53:43 · 1000 阅读 · 0 评论 -
C++ STL 标准模板库的学习 (一) 有关容器,算法,迭代器的基本认识 20180319 day10
C++ STL(标准模板库)容器、算法、迭代器STL 数据结构与算法的有效分离可以根据以下程序先进行一定的理解,不同的main()注意切换#include<iostream>#include"vector" //容器头文件#include"algorithm" //算法库头文件using namespace std;/*总结*///1 容器是将元素拷贝进来,要确保元素...原创 2018-03-19 15:48:33 · 303 阅读 · 0 评论 -
C++ STL 有关于SET集合部分 的自定义数据类型的排序 以及 pair的使用
#include<iostream>using namespace std;#include"set" //set集合容器的头文件#include<functional> //用于识别set从大到小中greater的识别/*知识点集合*///1 set为容器 元素唯一(如果插入多个重复元素就会出现只有一个元素被插入) 自动排序(默认情况下 从小到大) 不可以...原创 2018-03-23 10:22:52 · 1484 阅读 · 0 评论 -
C++ 文件输入输出流的小练习 20180319 day10
4编写一程序,将C++源程序每行前加上行号与一个空格。#include<iostream>#include"fstream"using namespace std;int main(){ ofstream file_1("F://learning//c12.cpp"); //打开一个文件,如果没有就自己创建 ifstream file_2("F://learning...原创 2018-03-19 09:06:07 · 386 阅读 · 0 评论