![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++学习
MC丶吼吼
跪求offer养家糊口。。
展开
-
C/C++ 常见问题总结_面向对象与类
面向对象与类面向对象基本知识面向对象与面向过程的区别面向过程是一种以过程为中心的编程思想,以算法进行驱动。面向对象是一种以对像为中心的编程思想,以消息进行驱动。面向过程编程语言的组成为:程序=算法+数据,面向对象编程语言的组成为:程序=对象+消息。面向对象的特征是什么 面向对象三个要素为:封装、继承、多态。面向对象中所有的对象都可以归属为一个类。 封装:将抽象得到的数据和行为相...原创 2018-05-21 21:18:16 · 750 阅读 · 0 评论 -
make_heap 用法
对make_heap(), pop_heap(), push_heap()的用法做个总结: make_heap()生成堆,他有两个参数,也可以有三个参数,前两个参数是指向开始元素的迭代器和指向结束元素的下一个元素的迭代器。第三个参数是可选的,可以用伪函数less()和gre...转载 2018-09-05 15:10:55 · 3114 阅读 · 0 评论 -
C++ regex
匹配字符串的基本规则1. 匹配固定的字符串regex e("abc");2. 匹配固定字符串,不区分大小写regex e("abc", regex_constants::icase);3. 匹配固定字符串之外多一个字符,...转载 2018-08-31 18:59:27 · 739 阅读 · 0 评论 -
C++常见问题总结_IO库
IO库C++语言不直接处理输入输出,而是通过一族定义在标准库中的类型来处理IO。这些类型支持从设备读取数据、向设备写入数据的IO操作,设备可以是文件、控制台窗口等。还有一些类型允许内存IO,即从string读取数据,向string写入数据。IO类#include<iostream>istream; wistream;ostream; wostream;iostre...原创 2018-05-24 14:02:15 · 328 阅读 · 0 评论 -
C++常见问题总结_类的一些特性
类的一些特性定义一个类型成员 除了定义数据和数据成员之外,类还可以自定义某种类型在类中的别名。由类定义的类型名字和其他成员一样存在访问限制。class Screen{public: //using pos=string::size_type; typedef string::size_type pos;private: pos cursor=0;...原创 2018-05-23 10:35:36 · 821 阅读 · 0 评论 -
C++常见问题总结_动态内存管理类
某些类需要在运行时分配可变大小的内存空间,通常这种类可以使用标准库容器来保存他们的数据。但是这一策略并不是对所有的类都管用,某些类需要自己进行内存分配,这些类一般需要自己定义自己的拷贝控制成员来管理所分配的内存。 这一篇文章将实现vector类的一个简化版本,不采用模板,只适用于string。将其命名为StrVec。 StrVec类:#pragma once#define _SCL_S...原创 2018-06-08 19:11:08 · 320 阅读 · 0 评论 -
C++常见问题总结_拷贝控制和资源管理
通常,管理类外资源的类必须定义拷贝控制成员。为了定义这些成员,我们首先必须确定此类型对象的拷贝语义。一般有两种选择:使类的行为看起来像一个值或者像一个指针。行为像值的类 类的行为像一个值,意味着它应该有自己的状态。当我们拷贝一个像值的对象时,副本和源对象是完全独立的。改变副本不会对原对象有任何影响。如标准库类型中string 1、定义一个类值行为的类#include<iostre...原创 2018-06-07 20:18:00 · 356 阅读 · 0 评论 -
c++常见问题总结_动态数组
动态数组c++语言和标准库提供了两种一次分配一个对象数组的方法。1、一种new表达式,可以分配并初始化一个对象数组。2、提供的allocator类,允许我们将分配和初始化分离。 使用容器的类可以使用默认版本的拷贝、赋值和析构操作。分配动态数组的类则必须定义自己版本的操作,在拷贝、复制以及销毁对象时管理关联的内存。new和数组 为了让new分配一个对象数组,我们要在类型名之后跟一对方括...原创 2018-05-31 10:51:08 · 1525 阅读 · 1 评论 -
C++常见问题总结_动态内存与智能指针
动态内存与智能指针静态内存用于保存局部static对象、类static数据成员以及定义在任何函数之外的变量。栈内存用来保存定义在函数内的非static对象。分配在静态内存或栈内存中的对象由编译器自动创建和销毁。对于栈对象,仅在定义的程序块运行时才存在;static对象在使用之前分配,在程序结束时销毁。 程序用堆来存储动态分配的对象(在程序运行时分配的对象)。动态对象的生存周期由程序来控制,当...原创 2018-05-30 19:43:21 · 263 阅读 · 0 评论 -
使用标准库:文本查询程序
我们将实现一个简单的文本查询程序,我们的程序允许用户在一个给定文件中查询单词。查询结果是单词在文件中出现的次数及其所在行的列表。如果一个单词在一行中出现多次,此行只列出一次。行会按照升序输出。我们可以直接使用vector 、set和map来直接编写文本查询程序,我们在这里经定义一个抽象的解决方案。首先我们将会定义一个保存输入文件的类,它包含一个vector和map。vector用来保存输入文件...原创 2018-06-05 15:20:21 · 392 阅读 · 0 评论 -
枚举类型enum
枚举类型的定义枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。定义格式:枚举类型的定义格式为: enum <类型名> {<枚举常量表>};其中:关键字enum——指明其后的标识符是一个枚举类型的名字。枚举常量表——由枚举常量构成。“枚举常量”或称“枚举成员”,是以标识符形式表...转载 2018-06-04 17:05:16 · 212 阅读 · 0 评论 -
C++常见问题总结_拷贝控制(对象移动)
拷贝控制(对象移动)一个类通过定义五种特殊的成员函数来控制这些操作,包括:拷贝构造函数、拷贝赋值运算符、移动构造函数、移动赋值运算符和析构函数。在C++常见问题总结_拷贝控制(拷贝、赋值、销毁)一文中已经介绍了拷贝构造函数、拷贝赋值运算符和析构函数。在本篇文章中将介绍移动构造函数和移动赋值运算符。 新标准一个主要的特性就是可以移动对象而非拷贝对象的能力。在C++常见问题总结_动态内存管理类中...原创 2018-06-11 16:31:50 · 949 阅读 · 0 评论 -
c++常见问题总结_string
string除了我们在C++常见问题总结_顺序容器中介绍的顺序容器的共同操作之外,string类型还提供了一些额外的操作。这些操作中大部分要么是提供string类和C风格字符串之间的相互转换,要么增加了允许我们使用下标替代迭代器的版本。构造string的其他方法string s(cp,n);//s是cp指向的数组中前n个字符的拷贝。此数组至少包含n个字符。string s(s2...原创 2018-05-28 14:44:23 · 374 阅读 · 0 评论 -
C++常见问题总结_顺序容器
顺序容器一个容器就是一些特定类型对象的集合。顺序容器的顺序不依赖于元素的值,而是与元素加入容器时的位置相对应。顺序容器类型vector;// 支持快速随机访问,在尾部之外的位置插入或删除元素可能很慢。deque; // 双端队列。支持快速随机访问。在头尾位置插入删除速度很快。list; // 双向链表。只支持双向顺序访问。在list中任何位置进行插入或删除元素的速度都很快。for...原创 2018-05-27 19:22:48 · 275 阅读 · 0 评论 -
C++常见问题总结_构造函数与析构函数
构造函数与析构函数构造函数每个类都分别定义了他的对象被初始化的方式, 类通过一个或几个特殊的成员函数来控制其对象的初始化过程。 构造函数的任务是初始化类对象的数据成员,无论何时只要类的对象被创建, 就会执行构造函数。 构造函数的名字和类名相同。和其他函数不同的是,构造函数没有返回类型;类可以包含多个构造函数,和其他重载函数差不多,不同构造函数之间必须在参数数量或参数类型上有所差别。 ...原创 2018-05-22 17:00:03 · 483 阅读 · 0 评论 -
cout格式化输出
转载于:cout格式化输出 在C语言中,我们一般用printf()函数来进行输出,通过输出字符串中的格式说明符(如%4.2d)可以很容易地格式化输出。而在C++中,为简便起见,往往不指定输出的格式,由系统根据数据的类型采取默认的格式,但有时也需要数据按我们指定的格式输出,比如以十六进制的形式输出一个整数等。有两种方法可以...转载 2018-06-02 17:06:08 · 245 阅读 · 0 评论