c++语言学习
TinnCHEN
这个作者很懒,什么都没留下…
展开
-
C++primer1-7章知识点总结——显示转换
warning:虽然有时候不得不使用强制类型转换,但这种方法本质上是非常危险的!命名的强制类型转换:形式:cast-name<type>(expressopn)//type是expression要转换的值。如果type是引用类型,则结果是左值。static_cast任何具有明确定义的类型转换,只要不包含底层const,都可以使用static_cast。//进行强制类型转...原创 2019-02-18 09:37:07 · 145 阅读 · 0 评论 -
自定义简易string类c++primer13.44
头文件#pragma warning(disable:4996) //可参考上一篇解决c4996问题的博客#include<iostream>#include<memory>#include<algorithm>#include<utility>class String {public: String() { element...原创 2019-04-16 21:50:03 · 273 阅读 · 0 评论 -
c++primer——重载运算与类型转换
1、重载的运算符是具有特殊名字的函数。对于一个运算符来说,它或者是函数成员,或者至少含有一个类类型的参数。我们只能重载已有的运算符。无法重载这个四个运算符:::.*.?:2、部分制定了运算对象求职顺序的运算符不该被重载,特别是,逻辑与,逻辑或、取地址和逗号运算符。原因是,这些关于运算对象求职顺序的规则无法应用到重载的运算符上,去求值顺序规则无法保留。并且&&和||的重载半...原创 2019-04-21 15:47:56 · 296 阅读 · 0 评论 -
error C4996: 'std::_Uninitialized_copy0':与错误 LNK2001 无法解析的外部符号 "private: static class std::allocator
/*在构造简易版vector<string>时遇到这两个问题,代码如下:*/#include<memory>#include<iostream>#include<string>#include<utility>#include<vector>class StrVec {public: StrVec() :...原创 2019-04-16 13:50:17 · 877 阅读 · 2 评论 -
c++primer——关联容器的使用
一、顺序关联容器(一)、容器的种类顺序关联容器有四种:可以按照关键字是否重复分为两类:1、不重复:map:保存key-valueset:保存key2、可以重复:multimap:保存key-valuemultiset:保存key(二)、关键字(key)的要求1、关键字类型必须定义元素比较的方法,所提供的操作必须是严格弱序,即<=。2、当我们想使用自定义的操作,必须在定...原创 2019-04-03 16:08:21 · 203 阅读 · 0 评论 -
文本查询程序c++primer12.32
头文件#include<iostream>#include<vector>#include<new>#include<set>#include<map>#include<fstream>#include<algorithm>#include<memory>#include<sst...原创 2019-04-11 11:11:35 · 200 阅读 · 0 评论 -
c++动态内存智能指针及weak_ptr用法的理解
静态内存1、静态内存:用来保存局部static对象(第一次经过时初始化直到程序终止才销毁,贯穿函数调用及之后的时间)、类static数据成员(与类本身相关与类对象无关,不能为const,不包含this)以及定义在任何函数之外的变量。2、栈内存:用来保存定义在函数内的非static对象。3、对于1和2,由编译器自动创建和销毁。智能指针shared_ptr4、为了避免使用动态指针带来的风险(...原创 2019-04-10 21:43:16 · 667 阅读 · 0 评论 -
c++primer——第十章泛型算法lambda
一、谓词谓词是一个调用表达式,其返回结果是一个能用做条件的值。标准库算法为此分为两类:1、一元谓词(意味着只能接受单一参数)2、二元谓词(意味着他们有两个参数)接受谓词的算法对输入序列中的元素调用谓词。因此元素类型必须能转换为谓词的参数类型。以sort和isShorter举例eg:bool isShorter(const string &s1, const string &...原创 2019-03-25 12:26:23 · 277 阅读 · 0 评论 -
c++primer——第十章泛型算法所提到的函数总结
泛型算法定义:泛型因为他们可以用于不同类型的元素和多种容器类型(不仅包括标准库类型,还包括内置的数组类型),以及我们将看到的,还能用与其他类型的序列。算法因为他们实现了一些经典算法的公共接口。本章所介绍的几个函数find:定义在头文件algorithm中,有三个参数,其中前两个至少为输入迭代器(指针),第三个参数是一个值。他返回第一个等于给定值元素的迭代器。从第一个参数开始寻找,如果没有找...原创 2019-03-25 10:41:16 · 168 阅读 · 0 评论 -
c++ typedef的一些理解
c++ typedef的一些理解char a = 'a'; const char b = 'b'; const char *c = &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;b; typedef char * pstring; const pstring cstr = &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;a;原创 2019-01-20 15:44:14 · 345 阅读 · 0 评论 -
引入const成员函数
class Person {public: Person(string s, string a); string PerName; string PerLive; const string&amp;amp;amp;amp; GetName() const { return PerName; }//(1) string GetLive() const { return PerLive; }//(2...原创 2019-01-23 09:47:55 · 259 阅读 · 0 评论 -
c++primer第五版7.23题知识点
class screen {public: typedef string::size_type pos;//定义类型成员(string::size_type类型见类下方注释),还可以使用using类型别名来定义using pos = string::size_type; screen() = default; //因为我们有定义构造函数,所以默认构造参数应该显示声明 screen(pos ...原创 2019-01-24 11:30:13 · 193 阅读 · 0 评论 -
C++primer1-7章知识点总结——vector以及迭代器的相关运用
vector定义:vector也常被称作容器,表示对象的集合,其中所有对象的类型都相同。集合中每个对象都有一个与之对应的索引,索引用于访问对象。使用时需添加头文件。vector是一个类模板使用时需实例化。eg:#include&amp;amp;lt;vector&amp;amp;gt;#include&amp;amp;lt;string&amp;amp;gt;using namespace std;vector&am原创 2019-02-12 11:40:00 · 172 阅读 · 0 评论 -
C++primer1-7章知识点总结——顶层const与底层const
顶层const表示任意对象/数据类型本身为常量底层const与指针和引用等复合类型的基本类型有关注:(1)用于声明引用的const都是底层const(2)指针类型既可以是顶层const也可以是底层consteg:int i = 0;int *const p1 = &amp;amp;i; //p1为顶层const,其值不能改变const int ci = 42; //ci为顶层const,...原创 2019-02-16 09:28:15 · 392 阅读 · 0 评论 -
C++primer1-7章知识点总结——sizeof运算符
定义:sizeof运算符返回一条表达式或一个类型名字所占的字节数。sizeof运算符满足右结合律,其所得的值是一个size_t类型的常量表达式。(size_t类型是一种机器相关的无符号类型,足够大可以表示内存中任意对象的大小)使用方法:sizeof (type);sizeof expr;注:sizeof的结果部分依赖于其作用的类型:1、对char或者类型为char的表达式执行si...原创 2019-02-18 08:42:34 · 241 阅读 · 0 评论 -
拷贝控制c++primer13章
1、一个类通过定义五种特殊的成员函数来啊控制这些操作:拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符、析构函数。2、拷贝构造函数:如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认值,则此构造函数是拷贝构造函数。且通常不为explicit的,eg:class foo{public: foo(); foo(const foo&);//拷贝构造...原创 2019-04-18 16:13:08 · 210 阅读 · 0 评论