C++
文章平均质量分 56
chnyac
chnyac
展开
-
C++:#include的实质
程序员应如何理解include#include实质为文本的替换原创 2020-09-30 15:42:14 · 423 阅读 · 0 评论 -
算法:移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。解法:记录当前零所在位置,以及当前零所在位置之后的非零位置,进行交换;用 cur记录当前非零位置,用zero记录当前零所在位置;保证cur对应值非零时,zero与cur的索引一致,或者zero的索引对应值为0;若cur与zero相同位置,则原地交换;.原创 2020-08-20 16:47:13 · 362 阅读 · 0 评论 -
C++:抽象类与虚函数
抽象类的纯虚函数的地址均为__cxa_pure_virtual函数的地址,该函数是在调用纯虚函数时调用的错误处理程序原创 2020-08-17 09:26:46 · 183 阅读 · 0 评论 -
C/C++:sizeof 详解
sizeof详解代码演示代码分析总结代码演示#include <stdio.h>#include <stdlib.h>int main(int argc, const char* argv[]){ long long arr_1[5] = {1,2,3,4,5}; //数组 long long* arrPoint = arr_1; //指向数组的指针 long long* arr_2 = new long long[原创 2020-08-15 16:10:32 · 227 阅读 · 0 评论 -
C++:11种排序方法
// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。///*排序算法(升序):1、插入排序 1)01 √ 插入 查找插入位置 2)02 √ 折半插入 快速查找插入位置 3)03 √ 希尔 不同步长分部排序2、交换排序(每一次遍历确定一个位置) 1)04 √ 冒泡 每次确定一个极数的位置 2)05 √ 快速 每次确定一个选择的数的位置3、选择排序 .原创 2020-05-14 22:59:57 · 927 阅读 · 1 评论 -
C++:queue 的使用
std::queue先进先出队列,提供一组特定的成员函数来访问其元素。元素被推入特定容器的尾部并从其首部弹出。成员函数:(public member function )(constructor)构造队列函数empty判断队列是否为空size返回目前元素的数量front返回队头元素back返回队尾元素push从队列尾部推入一个元素...翻译 2018-09-14 23:44:12 · 326 阅读 · 0 评论 -
C++:Boost 使用方法(函数对象)
参考资料:http://zh.highscore.de/cpp/boost/Boost 方法函数对象Boost.BindBoost.RefBoost.FunctionBoost.Lambda函数对象亦可称之为高阶函数,☞可被传入其他函数或从其他函数返回的一类函数。Boost.Bind位置:boost/bind.hppBoost.Bind 简化了不同函数之间的绑定,它只包含一个 boo...原创 2019-07-12 11:21:15 · 489 阅读 · 1 评论 -
C++:map 的使用
std::map映射是关联容器,它按照特定顺序存储由键值和映射值的组合形成的元素。map 底层使用红黑树实现。容器属性:键引用 | 有序 | Map | 唯一键 | Allocator-aware关联容器中的元素由其键引用,而不是由它们在容器中的绝对位置引用。容器中的元素始终遵循严格的顺序。所有插入的元素按此顺序给出一个位置。每个元素将键与映射值相关联:键用于标识主要内...翻译 2018-09-14 23:42:16 · 221 阅读 · 0 评论 -
C++:set 的使用
std::set集合是按特定顺序存储唯一元素的容器。在集合中,每个元素的值是唯一的。集合中元素的值不能在容器中修改,但可以在容器中插入或删除它们。 容器属性:键引用| 有序 | Set | 唯一键 | Allocator-aware访问由其键引用,而不是其绝对位置引用。序列按照一定的顺序严格排序,插入元素按照这个元素插入其所在位置。元素的值也是用于标识它的键。键...翻译 2018-09-14 23:41:26 · 386 阅读 · 0 评论 -
C++:stack 的使用
std::stack成员函数:(public member function )empty判断容器是否为空size返回目前元素的数量top访问栈顶元素push在栈顶增加一个元素emplace (C++11)在栈顶插入元素pop删除栈顶元素swap (C++11)交换两个栈的内容 ...翻译 2018-09-14 23:40:40 · 327 阅读 · 0 评论 -
C++:list 的使用
std::list容器属性:序列 | 双链表 | Allocator-aware序列容器中的元素按严格的线性顺序排序。各个元素按其顺序访问它们的位置。每个元素保存有关如何定位下一个元素和前一个元素的信息,允许在特定元素之前或之后(甚至整个范围)进行恒定时间插入和擦除操作,但不允许直接随机访问。容器使用allocator对象来动态处理其存储需求。迭代器相关函数:(publ...翻译 2018-09-14 23:39:28 · 400 阅读 · 0 评论 -
C++:vector 的使用
std::vector容器属性序列 | 动态数组 | Allocator-aware序列容器的元素按严格线性排列,可按顺序访问它们的位置;动态数组允许直接访问其任何元素,可快速在序列末尾相对快速进行元素添加 / 删除;容器通过 allocator 对象动态处理存储需求迭代器相关函数:(public member function )begin将迭代器返回到开头(...翻译 2018-09-15 10:44:41 · 192 阅读 · 0 评论 -
C++:函数传入二维数组
1、指定第二维的大小//定义void function(void a[][N]);//访问a[i][k];//其中 i 为行,j 为列2、指向第二维大小为N的指针//定义void function(void (*a)[N]);//访问a[i][j];//其中 i 为行,j 为列3、降维访问//定义void function(void *a);//访问...转载 2018-11-29 11:49:15 · 6056 阅读 · 0 评论 -
C++:Boost 使用方法(智能指针)
参考资料:http://zh.highscore.de/cpp/boost/Boost 方法智能指针RAII作用域指针作用域数组共享指针共享数组弱指针介入式指针指针容器智能指针 智能指针: std::auto_ptr 。 基本上就像是个普通的指针: 通过地址来访问一个动态分配的对象。 std::auto_ptr 之所以被看作是智能指针,是因为它会在析构的时候调用 delete 操作符来自动...原创 2019-07-12 09:27:44 · 601 阅读 · 0 评论 -
C++:strip函数以及读取ini配置文件
// ReadFile.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include "pch.h"#include <iostream>#include <fstream>#include <sstream>#include <vector>using namespace std;//去除字符串两...原创 2019-07-19 17:27:06 · 1577 阅读 · 0 评论 -
C++:更新写入配置ini文件
/// ReadFile.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//--------------------------------------------------------------------------/// strip 函数在博客“C++:strip函数以及读取ini配置文件”中,这里不再赘述//----------------------...原创 2019-07-19 20:31:28 · 910 阅读 · 0 评论 -
C++:删除ini配置文件中的键值(key)
/// ReadFile.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//--------------------------------------------------------------------------/// strip 函数在博客“C++:strip函数以及读取ini配置文件”中,这里不再赘述//----------------------...原创 2019-07-19 20:45:49 · 1937 阅读 · 0 评论 -
C++:删除ini配置文件的title及对应的key
/// ReadFile.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//--------------------------------------------------------------------------/// strip 函数在博客“C++:strip函数以及读取ini配置文件”中,这里不再赘述//----------------------...原创 2019-07-19 20:56:20 · 957 阅读 · 1 评论 -
C++:设计模式之工厂方法模式(例子)
// 设计模式测试.cpp : 定义控制台应用程序的入口点。// 工厂方法模式#include "stdafx.h"#include <string>#include <iostream>#include <vector>#include <list>using namespace std;/*******************...原创 2018-06-07 16:59:23 · 763 阅读 · 0 评论 -
C++:deque 的使用
std::deque容器属性序列 | 动态数组 | Allocator-aware序列容器的元素按严格线性排列,可按顺序访问它们的位置;动态数组允许直接访问其任何元素,可快速在序列首尾相对快速进行元素添加 / 删除;容器通过 allocator 对象动态处理存储需求迭代器相关函数: (public member function )begin 将迭代器返回到开头...翻译 2018-09-14 23:36:41 · 6475 阅读 · 0 评论 -
C++:const 用法详解
const 与指针 * int main(){ int int_value = 1; const int const_int_value = 2; int const int_const_value = 3; // equal to ( const int ) const int const const_int_const_value = 4; ...原创 2018-09-18 23:36:29 · 490 阅读 · 0 评论 -
C++:设计模式之适配器模式(例子)
// 设计模式测试.cpp : 定义控制台应用程序的入口点。// 适配器模式#include "stdafx.h"#include <string>#include <iostream>#include <vector>#include <list>using namespace std;/********************...原创 2018-06-08 12:20:52 · 530 阅读 · 0 评论 -
C++:设计模式之命令模式(例子)
// 设计模式测试.cpp : 定义控制台应用程序的入口点。// 命令模式#include "stdafx.h"#include <string>#include <iostream>#include <vector>#include <list>using namespace std;/*********************...原创 2018-06-07 20:03:02 · 340 阅读 · 0 评论 -
C++:设计模式之单例模式(例子)
// 设计模式测试.cpp : 定义控制台应用程序的入口点。// 单例模式#include "stdafx.h"#include <string>#include <iostream>#include <vector>#include <list>using namespace std;/*********************...原创 2018-06-07 17:43:36 · 175 阅读 · 0 评论 -
C++:头文件中条件编译的作用
#ifndef oneHeadName#define oneHeadName/*body*/#endif编译时测试是否定义 oneHeadName:—若没有则定义 oneHeadName 并编译 body 代码段;—若已经定义则跳过该文件,亦可避免重定义;...原创 2018-05-31 19:23:00 · 1179 阅读 · 0 评论 -
C++:ADO 的 import 操作中的 no_namespace 和 rename 的含义解释
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")======================================================================msado15.d...转载 2018-05-31 18:43:33 · 1199 阅读 · 0 评论 -
C++:设计模式之装饰器模式(例子)
// 设计模式测试.cpp : 定义控制台应用程序的入口点。// 观察者模式#include "stdafx.h"#include <string>#include <iostream>#include <vector>#include <list>using namespace std;/********************...原创 2018-06-07 16:09:00 · 373 阅读 · 0 评论 -
C++:设计模式之观察者模式(例子)
// 设计模式测试.cpp : 定义控制台应用程序的入口点。// 观察者模式#include "stdafx.h"#include <string>#include <iostream>#include <vector>#include <list>using namespace std;/********************...原创 2018-06-07 15:29:15 · 970 阅读 · 0 评论 -
C++:设计模式之策略模式(例子)
// 设计模式测试.cpp : 定义控制台应用程序的入口点。// 策略模式#include "stdafx.h"#include <string>#include <iostream>using namespace std;//武器接口class IWeaponBehavior{public: virtual string useWeapon() = ...原创 2018-06-07 11:54:50 · 341 阅读 · 0 评论 -
C++:设计模式之模版方法模式(例子)
// 设计模式测试.cpp : 定义控制台应用程序的入口点。// 模版方法#include "stdafx.h"#include <string>#include <iostream>#include <vector>#include <list>using namespace std;/*********************...原创 2018-06-08 15:08:08 · 227 阅读 · 0 评论 -
C++:字符串操作
string1、赋值函数2、添加字符串3、比较和查找4、清空,删除,替换5、其他原创 2018-06-26 20:50:53 · 390 阅读 · 0 评论 -
C++:文件相关操作
==========================================================1、/* 打开文件读取每一个词组 * 并存入string 类型的vector容器 */vector<string> StringVt;string line, word;fstream io("filename.txt", ios::in); istrings...原创 2018-06-27 15:18:15 · 182 阅读 · 0 评论 -
C++:public、protected、private 权限及继承详解
class BaseClass {public: void PubGetVal() {} int pub_val;protected: void ProGetVal() {} int pro_val;private: void PriGetVal() {} int pri_val;};class PubSubClass : public BaseClass {public...原创 2018-09-18 19:38:54 · 401 阅读 · 0 评论 -
C++:cstdlib 头文件详解
<cstdlib> (stdlib.h)headerC标准通用实用库此标头定义了几个通用功能,包括动态内存管理,随机数生成,与环境的通信,整数算术,搜索,排序和转换。函数String 转换(function )atof转换 string -> double atoi转换 string -> integeratol转换 stri...翻译 2018-09-17 17:07:45 · 24724 阅读 · 1 评论 -
C++:cstdio 头文件详解
<cstdio> (stdio.h)headerC库执行输入/输出操作:输入和输出操作也可以在C++实现,通过使用C标准输入和输出库(cstdio,在C语言中称为stdio.h)。这个库使用流来操作物理设备如键盘,打印机,终端或者系统支持的任何其他类型的文件。流是一种以统一的方式与这些交互的抽象; 所有流都具有相似的属性,与它们所关联的物理介质的各个特征无关。流...翻译 2018-09-17 16:45:28 · 27631 阅读 · 0 评论 -
C++:iomanip 头文件详解
<iomanip>headerIO 操作器Header 提供操纵器的参数设置:参数操纵器(function )setiosflags设置格式 flags resetiosflags取消已设置的格式 flags setbase设置数字进制基数(2、8、10、16)setfill设置填充字符setprecision设置小数点精度...翻译 2018-09-17 15:49:51 · 2237 阅读 · 0 评论 -
C++:iterator 头文件详解
<iterator>header迭代器定义一个迭代器可以是指向一定范围内的数组或者容器中的元素,具有在一定范围内数组进行迭代的操作集合(至少具有增量 ++ 能力和 dereference *运算符)。迭代器最明显的形式是指针。指针可以指向数组中的元素,并可以使用运算符 ++ 迭代它们,但是也可能是其他种类的迭代器。例如,每个容器类型(例如list)具有一个特定的迭代器类...翻译 2018-09-17 11:34:23 · 3324 阅读 · 0 评论 -
C++:string 头文件详解和 string 的使用
<string> header 该 header 介绍字符串类型,字符特征和一组转换函数类模板 (class template )basic_string通用字符串类模板char_traitschar型字符串模板类的实例 (class )stringString类u16string 16位 String 字符类u32strin...翻译 2018-09-16 22:18:02 · 5703 阅读 · 0 评论 -
C++:iostream 的使用
std::iostreamInput/output streamios_base ios istream ostream iostream fstream stringstream[NOTE: 这里是 iostream 类,若想了解 iostream 库,请看 Input/Output library.]该类内部所有成员继承自 istream类和 ostream类,因此能...翻译 2018-09-16 20:49:00 · 3629 阅读 · 0 评论 -
C++:Input/Output 输入输出流
Input/OutputInput/Output library<iostream>包括istream、ostream、iostream以及cin、cout、ceer和clog对象的定义,同时提供非格式化和格式化的I/O服务。针对标准设备的I/O操作,需包含之。<sstream>包括istringstream、ostringstream、string...翻译 2018-09-16 13:17:03 · 6181 阅读 · 0 评论