
《Essential C++》笔记
文章平均质量分 88
《Essential C++》笔记
一只野生的善逸
吃饭,睡觉,学习。
展开
-
C++笔记之《STL和泛型编程》标准库容器自带or不带有成员函数(方法)总结
《STL和泛型编程》容器不带/带有成员函数总结容器不带成员函数count():array vector list forward_list deque容器带有成员函数count():set/multiset map/multimap unordered_set/unordered_multiset unordered_map/unordered_multimap容器不带成员函数find():array vector list forward_list deque容器带有成原创 2020-11-23 15:29:02 · 228 阅读 · 0 评论 -
《Essential C++》笔记之漫游:面向对象编程思维
1#include <iostream>#include <fstream>#include <string>using namespace std;class LibMat {public: LibMat(){ cout << "LibMat::LibMat() default constructor!\n"; } virtual ~LibMat(){ cout << "LibMat::~LibMat() destr原创 2020-12-05 19:15:41 · 448 阅读 · 0 评论 -
《Essential C++》笔记之(static)静态类成员
首先感谢博文《Essential C++》系列笔记之第四章(基于对象的编程风格)之第五节(静态类成员)总结的非常清晰,给出的例程也很棒!我作为C++学渣再进行一点copy和自己的小补充。例:#include <iostream>#include <string>using namespace std;class Person{public: Person(int age, string name) :_age(age), _name(name) {};原创 2020-12-03 15:01:49 · 320 阅读 · 1 评论 -
C++之初始化列表的一个笔记
以下代码出自大神的博文——构造函数与初始化列表初始化列表4.1作用:对数据成员进行初始化4.2格式:构造函数():变量名1(数值),变量名2(数值){} //!变量名不在花括号的后面,而是在花括号的前面#include <iostream>#include <string>using namespace std; class Cperson{public: Cperson() :_a(1), _b(3.14f), _c("we are csdn.原创 2021-02-01 10:45:16 · 263 阅读 · 0 评论 -
《Essential C++》笔记之Iterator Inserter(插入迭代器)
#include<list>#include<iostream>#include<iterator>using namespace std;int main(){ list<int> lst = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; list<int> lst2 ={10}, lst3={10},lst4={10}; copy(lst.cbegin(), lst.cend().原创 2020-12-01 16:38:15 · 597 阅读 · 0 评论 -
《Essential C++》笔记之关联容器set的使用总结
//小问学编程//编写一个能对文章内每个字眼的出现次数加以分析的程序//以前一节的字数统计程序为例,它可能不想统计一般中性词汇//的出现次数。为实现此目的,我们定义一个用来记录“排除字眼”//的set,元素类型为string#include<iostream>#include<map>#include<string>#include<set>using namespace std;int main(){ map<stri原创 2020-11-30 21:13:39 · 176 阅读 · 0 评论 -
《Essential C++》笔记之关联容器map的使用总结
map使用简单例子:例1//小问学编程#include<iostream>#include<map>using namespace std;int main(){ map<int,char>mp;//定义map容器 //数组方式插入 mp[1]='a'; mp[1]='b';//key不允许重复,再次插入相当于修改value的值 mp[2]='a'; mp[3]='b'; mp[4]='c'; cout<<"根据key值输原创 2020-11-30 17:19:11 · 274 阅读 · 0 评论 -
C++之顺序性容器vector、list、deque的push_back、pop_back、push_front、pop_front、插入(insert)和删除(erase)通用操作及其变形
例1://小问学编程#include <functional>#include <iostream>#include <list>#include <algorithm>using namespace std;int main(){ list<int> ilist{15,37,94,50,73,58,28,98}; list<int>::iterator it=ilist.begin(); .原创 2020-11-28 20:52:54 · 4511 阅读 · 0 评论 -
C++Function Object Adapter之not1
——《Essential C++》中文版 Page 89例://小问学编程#include <functional>#include <iostream>#include <vector>#include <algorithm>using namespace std;int main(){ vector<int> vec{15,37,94,50,73,58,28,98}; vector<int>:.原创 2020-11-28 16:05:36 · 301 阅读 · 0 评论 -
《Essential C++》笔记之设计一个泛型算法(二)
任务4:使用Function Object令call运算符成为inline,从而消除“通过函数指针来调用函数”时付出的额外代价。使用Function Object Adapter消除容器类型间的依赖性。Function Object——《Essential C++》中文版 Page 85...原创 2020-11-27 21:54:01 · 354 阅读 · 0 评论 -
《Essential C++》笔记之设计一个泛型算法(一)
《Essential C++》笔记之设计一个泛型算法(包含了函数指针的技巧) 用户给予一个整数vector,我们必须返回一个新的vector,其中内含原vector之中小于10的所有数值。一个快速但缺乏弹性的解法是:如果用户想找到所有小于11的元素,我们要么新建立一个新函数,要么就得将此函数通用化,让用户得以指定某个上限值,像下面这样:下一个任务难度颇高。我们必须允许用户指定不同的比较操作,像是大于、小于、等等。如何才能将“比较操作”参数化呢?有一个解法:以函数调用来取代less-than运算原创 2020-11-25 13:42:47 · 335 阅读 · 0 评论 -
C++之顺序性容器vector、list、deque的五种定义方式
要使用顺序性容器,首先必须包含相关的头文件,也就是以下三者之一: #include<vector> #include<list> #include<deque>定义顺序性容器对象的方式有五种:产生空的容器:产生特定大小的容器。每个元素都以其默认值作为初值:产生特定大小的容器,并为每个元素指定初值:通过一对iterator产生容器。这对iterator用来标示一整组作为初值的元素的范围:根据某个容器产生出新容器。复制原容器内的元素,作为新容原创 2020-11-24 20:01:34 · 241 阅读 · 0 评论 -
《Essential C++》笔记之迭代器Iterator(泛型指针)
《Essential C++》笔记之迭代器Iterator(泛型指针)每个标准容器都提供有一个名为begin()的操作函数,可返回一个iterator,指向第一个元素。另一个名为end()的操作函数会返回一个iterator,指向最后一个元素的下一个为主。因此,不论此刻如何定义iterator对象,以下都是对iterator进行赋值(assigen)、比较(compare)、递增(increment)、提领(dereference)操作:...原创 2020-11-23 16:21:30 · 599 阅读 · 0 评论 -
《Essential C++》笔记之设定头文件
《Essential C++》笔记之设定头文件《Essential C++》Page 63:《Essential C++》Page 64:原创 2020-11-22 11:20:50 · 214 阅读 · 0 评论 -
《Essential C++》笔记之文件读写示例
C++简单文件读写一.文件写入// 小问学编程#include<iostream>#include<fstream>using namespace std;int main(){ string usr_name,usr_age,usr_state; cout<<"请输入你的名字: "; cin>>usr_name; cout<<"请输入你的年龄: "; cin>>usr_age原创 2020-11-19 16:04:52 · 186 阅读 · 0 评论 -
《Essential C++》笔记之传指针(pass by pointer)分析
《Essential C++》笔记之传指针&分析举例分析:把指针作为函数参数传递void fun(vector<int>*);函数声明中把指针vector<int>*作为函数参数传递//小问学编程#include <iostream>#include<vector>using namespace std;void fun(vector<int>*);int main(){ int a[8]={8,35,12,原创 2020-11-21 14:40:53 · 375 阅读 · 0 评论 -
《Essential C++》笔记之return;分析
《Essential C++》笔记之return;分析举例分析:子函数bool fibon_elem(int,int&)中返回值为return true传到主函数中。//小问学编程#include <iostream>using namespace std;bool fibon_elem(int,int&);int main(){ int pos; cout<<"请输入Fibonaccei数列中某个元素的位置:"<<'原创 2020-11-20 16:21:19 · 136 阅读 · 0 评论 -
《Essential C++》笔记之传引用&(pass by reference)分析
<<Essential C++>>笔记之传引用&分析举例分析:把引用作为函数参数传递bool fibon_elem(int,int&);函数声明中把引用 int& 作为函数参数//小问学编程#include <iostream>using namespace std;bool fibon_elem(int,int&);int main(){ int pos; cout<<"请输入Fibon原创 2020-11-20 14:39:24 · 311 阅读 · 0 评论