primer

C++ bitset类的使用

房东的猫 提交于 2020-08-15 12:17:33
C++ bitset类的使用 因为无知而学习,因为学习而更感无知。 在刷题过程中遇到不少的位操作,这里有必要学习一下C++ 内置的bitset类。欢迎各位指出文中的错误。 本文主要内容: 1. bitset类的函数使用 2. 自己实现的myBitset类 1. bitset类的使用 –代码主要参考《C++ Primer》 # include <bitset> //包含头文件,是标准库的头文件 # include <iostream> # include <array> using namespace std ; /* 在C++中,int 和long值范围一样,4Bytes unsigned int 和unsigned long 取值范围一样,4Bytes long long 占8个字节,有符号整型。 unsigned long long占8字节,无符号整型。 */ //构造函数。bitset是一个类,类似于vector和array<int,n> void constructionTset ( ) { //1. bitset<n> b;这里n必须是常量,b是对象。传入n代表对象b具有n位0、1。默认每一位均是0 bitset < 8 > b ; //0000 0000 //2. bitset<n> b(u) b是unsigned long lnog 值低n位的拷贝

学C语言和C++它有毛关系吗?

你。 提交于 2020-08-15 11:55:45
这是最近一周时间几个读者小伙伴所提的问题,我顺手截了两个图。 实不相瞒,这类问题之前也经常看到,但是我忘了截图了。 每次遇到这种问题,看起来很简单,但是打字一时半会还真说不清,想想今天周末了,写一篇文章来统一聊聊吧,如果小伙伴们有不同看法,也欢迎批评指正,评论区见。 本文在开源项目: https://github.com/hansonwang99/JavaCollection 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中... ” C 语言和 C++ 到底是什么关系? 首先 C++ 和 C 语言本来就是两种 不同的 编程语言,但 C++ 确实是对 C 语言的扩充和延伸,并且对 C 语言提供后向兼容的能力。对于有些人说的 C++ 完全就包含了 C 语言的说法还是有点别扭的。 C++ 一开始被本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)发明时,起初被称为 “C with Classes” ,即「带类的 C 」。很明显它是在 C 语言的基础上扩充了类class等面向对象的特性和机制。但是后来经过一步步修订和很多次演变(如下图所示),最终才形成了现如今这个支持一系列重大特性的庞大编程语言。 就像经典书籍《Effective C++》一开头就说的,现如今我们提到 C++ ,都应该视其为一个庞大的「 语言联邦 」

C++ Primer Plus(四)

一个人想着一个人 提交于 2020-08-14 15:48:45
完整阅读C++ Primer Plus   系统重新学习C++语言部分,记录 重要但易被忽略 的, 关键但易被遗忘 的。 友元、异常和其他   1、抛出异常类时,虽然catch的是一个引用,但是也会产生一次拷贝,因为当抛出异常的函数在 栈解退 的过程中会会调用异常类的析构函数,异常类将不复存在。   2、如果有一个异常类层次结构,应该这样排列catch块:将捕获位于层次结构最下面的异常类的catch语句放在最前面,将捕获基类异常的catch语句放在最后面。抛出异常的顺序要与catch块相反。   3、在catch语句中使用基类对象时,将捕获所有的派生类对象,但 派生类特性将被剥去 ,因此将使用虚方法的基类版本。   4、 将 dynamic_cast 用于引用时,由于没有与空指针对应的引用值,因此无法使用特殊的引用值来表示失败,当请求不正确时,将引发 bad_cast 的异常。   5、 reinterpret_cast 运算符并不支持所有的类型转换,例如,可以将指针类型转换为足以存储指针的整数,但不能将指针转换为更小的整型或浮点型。另一个限制是,不能将函数指针和数据指针互相转换。 string类和标准模板库   6、使用new分配内存时,可以使用 auto_ptr 、 unique_ptr 、 shared_ptr 、但只有unique_ptr有使用new[]和delete[

c++ primer 第五版第七章

我只是一个虾纸丫 提交于 2020-08-13 17:03:48
7.01 利用2.6.1节所定义的Sales_data类为1.6节的交易处理程序编写一个新的版本。 struct Sales_data { ​ std::string bookNo; ​ unsigned units_sold = 0; ​ double revenue = 0.0; }; void test701() { ​ Sales_data total; ​ if (cin >> total.bookNo >> total.units_sold >> total.revenue) { ​ Sales_data trans; ​ while (cin >> trans.bookNo >> trans.units_sold >> trans.revenue) { ​ if (total.bookNo == trans.bookNo) { ​ total.units_sold += trans.units_sold; ​ total.revenue += trans.revenue; ​ } ​ else { ​ cout << total.bookNo << " " << total.units_sold << " " << total.revenue << endl; ​ total = trans; ​ } ​ } ​ cout << total.bookNo << " "

c++ primer 第五版第七章

半世苍凉 提交于 2020-08-13 17:02:09
7.01 利用2.6.1节所定义的Sales_data类为1.6节的交易处理程序编写一个新的版本。 struct Sales_data { ​ std::string bookNo; ​ unsigned units_sold = 0; ​ double revenue = 0.0; }; void test701() { ​ Sales_data total; ​ if (cin >> total.bookNo >> total.units_sold >> total.revenue) { ​ Sales_data trans; ​ while (cin >> trans.bookNo >> trans.units_sold >> trans.revenue) { ​ if (total.bookNo == trans.bookNo) { ​ total.units_sold += trans.units_sold; ​ total.revenue += trans.revenue; ​ } ​ else { ​ cout << total.bookNo << " " << total.units_sold << " " << total.revenue << endl; ​ total = trans; ​ } ​ } ​ cout << total.bookNo << " "

编程入门书籍:大学学习计算机基础必读 5 本经典入门书籍,收藏

馋奶兔 提交于 2020-08-11 01:59:50
新手学习计算机并非易事,作为一个自学编程的过来人,深知打好计算机基础的重要性,缺少了坚实的计算机的基础,往往你也难以往上走,即使学了再多高大上的技术,也都是在沙台上筑高楼,缺少根基,摇摇欲坠。 学好计算机基础,方法方式很多,有的同学可以选择听课,有的同学可以到网上看慕课,除了这些方式之外,我还要向大家推荐几本学习计算机基础的优质书籍,这些书籍都是我从自学路上见过的、看过的书籍中精选出来的,不管是对于新手还是对于有一定基础的同学,都有其价值,相信看完这些书籍对你们会大有裨益。 1. 码农翻身 推荐指数::star:️:star:️:star:️:star:️:star:️ ​ 《 码农翻身 》 推荐理由: 我把这本书放在第一位,是因为这本书的内容覆盖面非常光,基本上涵盖了计算机基础、软件开发、程序员的思考和职业发展等方向,而且,不管你是小白还是有一定经验的工程师,这本书都会让你有所收获,抛开复杂的技术原理和概念,本书其实一直通过故事和图片帮你解开一个又一个技术难点。 本书作者刘欣,15年的软件行业从业经验,前IBM系统架构师,擅长企业应用架构和设计,领导过多个企业级应用架构设计和开发工作。 上述介绍摘自百度百科,其实刘欣老师是一个资深的技术大牛,在这本书没有出版前,他的《码农翻身》系列文章就已经火遍各大技术论坛 我之前也有幸和刘欣老师交流过几次,发现刘欣老师是一个非常严谨的人

编程入门书籍:大学学习计算机基础必读 5 本经典入门书籍,收藏

痞子三分冷 提交于 2020-08-10 06:23:25
新手学习计算机并非易事,作为一个自学编程的过来人,深知打好计算机基础的重要性,缺少了坚实的计算机的基础,往往你也难以往上走,即使学了再多高大上的技术,也都是在沙台上筑高楼,缺少根基,摇摇欲坠。 学好计算机基础,方法方式很多,有的同学可以选择听课,有的同学可以到网上看慕课,除了这些方式之外,我还要向大家推荐几本学习计算机基础的优质书籍,这些书籍都是我从自学路上见过的、看过的书籍中精选出来的,不管是对于新手还是对于有一定基础的同学,都有其价值,相信看完这些书籍对你们会大有裨益。 1. 码农翻身 推荐指数::star:️:star:️:star:️:star:️:star:️ ​ 《 码农翻身 》 推荐理由: 我把这本书放在第一位,是因为这本书的内容覆盖面非常光,基本上涵盖了计算机基础、软件开发、程序员的思考和职业发展等方向,而且,不管你是小白还是有一定经验的工程师,这本书都会让你有所收获,抛开复杂的技术原理和概念,本书其实一直通过故事和图片帮你解开一个又一个技术难点。 本书作者刘欣,15年的软件行业从业经验,前IBM系统架构师,擅长企业应用架构和设计,领导过多个企业级应用架构设计和开发工作。 上述介绍摘自百度百科,其实刘欣老师是一个资深的技术大牛,在这本书没有出版前,他的《码农翻身》系列文章就已经火遍各大技术论坛 我之前也有幸和刘欣老师交流过几次,发现刘欣老师是一个非常严谨的人

你有一份新的C++书单,请注意查收!

旧巷老猫 提交于 2020-08-09 10:19:27
​ C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。 作为一个Java工程师,学习C++的门槛并不算低,C++从来没有虚拟机,没有垃圾回收,在Java里不需要考虑的各种技术细节,在C++里都需要关心和处理,比如手动分配内存。 如果是C++工程师转型做Java,则是明显的降维打击,你再也不需要考虑内存的管理,不需要深入底层去做编程,仅仅把它们当成系统自带的类库就好了。今天我们就来推荐几本C++的经典书籍吧。 C++系列书单 ​ C++ Primer Plus C++是在C语言基础上开发的一种集面向对象编程、通用编程和传统的过程化编程于一体的编程语言,是C语言的超集。《C++ Primer Plus(第6版)(中文版)》是根据2003年的ISO/ANSI C++标准编写的。 通过大量短小精悍的程序详细而全面地阐述了C++的基本概念和技术。全书分为18章和10个附录,分别介绍了C++程序的运行方式、基本数据类型、复合数据类型、循环和关系表达式、分支语句和逻辑操作符、函数重载和函数模板、内存模型和名称空间、类的设计和使用、多态、虚函数、动态内存分配、继承、代码重用、友元

C++ Primer Plus(三)

蓝咒 提交于 2020-08-06 03:16:48
完整阅读C++ Primer Plus   系统重新学习C++语言部分,记录 重要但易被忽略 的, 关键但易被遗忘 的。 使用类   1、不能重载的运算符 1 sizeof sizeof运算符 2 . 成员运算符 3 .* 成员指针运算符 4 :: 作用域解析运算符 5 ? : 条件运算符 6 typeid 一个RTTI运算符 7 const_cast 强制类型转换运算符 8 dynamic_cast 强制类型转换运算符 9 reinterpret_cast 强制类型转换运算符 10 static_cast 强制类型转换运算符   2、只能通过成员函数重载的运算符 1 = 赋值运算符 2 () 函数调用运算符 3 [] 下标运算符 4 -> 通过指针访问类成员的运算符   3、关于 类的类型转换函数 ,C++11支持对其使用explicit关键字,使其无法进行隐式类型转换。   4、对于定义了一个以上的转换函数的类,编译器在某些情况下(如将一个对象直接赋值给一个基本类型,或用cout输出时)无法确定应该使用哪一个转换函数(进行隐式类型转换),因此将出现二义性错误,但只有一个转换函数时,编译器只能选择这一个,因此不会出错。 类和动态内存分配   5、将新对象显示地初始化为现有对象时将调用拷贝构造函数,默认的拷贝构造函数将除静态成员以外的所有成员按值赋值。 1 String a(b);

你有一份新的C++书单,请注意查收!

女生的网名这么多〃 提交于 2020-08-05 18:49:44
​ C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。 作为一个Java工程师,学习C++的门槛并不算低,C++从来没有虚拟机,没有垃圾回收,在Java里不需要考虑的各种技术细节,在C++里都需要关心和处理,比如手动分配内存。 如果是C++工程师转型做Java,则是明显的降维打击,你再也不需要考虑内存的管理,不需要深入底层去做编程,仅仅把它们当成系统自带的类库就好了。今天我们就来推荐几本C++的经典书籍吧。 C++系列书单 ​ C++ Primer Plus C++是在C语言基础上开发的一种集面向对象编程、通用编程和传统的过程化编程于一体的编程语言,是C语言的超集。《C++ Primer Plus(第6版)(中文版)》是根据2003年的ISO/ANSI C++标准编写的。 通过大量短小精悍的程序详细而全面地阐述了C++的基本概念和技术。全书分为18章和10个附录,分别介绍了C++程序的运行方式、基本数据类型、复合数据类型、循环和关系表达式、分支语句和逻辑操作符、函数重载和函数模板、内存模型和名称空间、类的设计和使用、多态、虚函数、动态内存分配、继承、代码重用、友元