C++
文章平均质量分 82
C++相关合集
Swxctx
喜欢技术、喜欢开源项目及分享。
铭心刻骨,就要一意孤行;越是憧憬,越要风雨兼程;要走多远,才算走进森林_xc。
展开
-
C++ - Map的基本使用介绍
Map在很多时候是很常用的东西,不管哪种语言,其都是离不开键值对的方式,在C++中也是一样的操作,同时还提供了一些简便的方法让我们快速的对Map进行操作,接下来先看一个Map的基本使用操作:#include <iostream>#include <map> using namespace std; int main(void){ int i; ...原创 2018-08-15 10:03:34 · 542 阅读 · 0 评论 -
C++数据封装
所有的 C++ 程序都有以下两个基本要素: 程序语句(代码):这是程序中执行动作的部分,它们被称为函数。程序数据:数据是程序的信息,会受到程序函数的影响。封装是面向对象编程中的把数据和操作数据的函数绑定在一起的一个概念,这样能避免受到外界的干扰和误用,从而确保了安全。数据封装引申出了另一个重要的 OOP 概念,即数据隐藏。数据封装是一种把数据和操作数据的函数捆绑在一起的机制,数据抽原创 2016-04-29 23:20:17 · 276 阅读 · 0 评论 -
C++ STL-查找实例
find() find_if()#if 0/*查找-find find_if(1)*/#include#include#include#includeusing namespace std;templatevoid print(const Container &c);//模板函数int main(){ list a; for(int i=0;i<10;++i)原创 2016-05-25 00:29:25 · 554 阅读 · 0 评论 -
C++ STL实例(二)
元素计数#if 0/*元素计数*/#include#include#include#include#include//函数对象预定义using namespace std;templatevoid print(const Container &c);//模板函数bool even(int elem);//一元谓词int main(){ vector a; for(原创 2016-05-25 00:37:23 · 476 阅读 · 0 评论 -
C++文件和流
我们已经使用了 iostream 标准库,它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。对于文件读取流和向文件写入流。这就需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型:数据类型描述ofstream该数据类型表示输出文件流,用于创建文件并向文件写入信息。ifstream该数据类型表原创 2016-04-30 11:02:43 · 491 阅读 · 0 评论 -
C++异常处理
异常是程序在执行期间产生的问题。C++ 异常是指在程序运行时发生的特殊情况,比如尝试除以零的操作。异常提供了一种转移程序控制权的方式。C++ 异常处理涉及到三个关键字:try、catch、throw。throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。catch: 在您想要处理问题的地方,通过异常处理程序捕获异常。catch 关键字用于捕获异常。t原创 2016-04-30 13:10:44 · 421 阅读 · 0 评论 -
C++动态内存分配
了解动态内存在 C++ 中是如何工作的是成为一名合格的 C++ 程序员必不可少的。C++ 程序中的内存分为两个部分:栈:在函数内部声明的所有变量都将占用栈内存。堆:这是程序中未使用的内存,在程序运行时可用于动态分配内存。很多时候,您无法提前预知需要多少内存来存储某个定义变量中的特定信息,所需内存的大小需要在运行时才能确定。在 C++ 中,您可以使用特殊的运算符为给定类型的变量在运行原创 2016-04-30 15:14:11 · 472 阅读 · 0 评论 -
C++命名空间
假设:当一个班上有两个名叫 Zara 的学生时,为了明确区分它们,我们在使用名字之外,不得不使用一些额外的信息,比如他们的家庭住址,或者编号等等。同样的情况也出现在 C++ 应用程序中。例如,可能会写一个名为 xyz() 的函数,在另一个可用的库中也存在一个相同的函数 xyz()。这样,编译器就无法判断您所使用的是哪一个 xyz() 函数。因此,引入了命名空间这个概念,专门用于解决上面的问原创 2016-04-30 15:44:50 · 297 阅读 · 0 评论 -
C++错误集合
英文参考译文Ambiguous operators need parentheses模棱两可的操作符需要括号Ambiguous symbol ''xxx''不明确的符号Argument list syntax error参数表语法错误Array bounds missin原创 2016-04-30 18:52:11 · 714 阅读 · 0 评论 -
C++数据抽象
数据抽象是指,只向外界提供关键信息,并隐藏其后台的实现细节,即只表现必要的信息而不呈现细节。数据抽象是一种依赖于接口和实现分离的编程(设计)技术。比如一台电视机,您可以打开和关闭、切换频道、调整音量、添加外部组件(如喇叭、录像机、DVD 播放器),但是您不知道它的内部实现细节,也就是说,您并不知道它是如何通过缆线接收信号,如何转换信号,并最终显示在屏幕上。因此,可以说电视把它的内部实现原创 2016-04-29 22:28:34 · 1104 阅读 · 0 评论 -
C++虚函数
虚函数虚函数 是在基类中使用关键字 virtual 声明的函数。在派生类中重新定义基类中定义的虚函数时,会告诉编译器不要静态链接到该函数。我们想要的是在程序中任意点可以根据所调用的对象类型来选择调用的函数,这种操作被称为动态链接,或后期绑定。纯虚函数您可能想要在基类中定义虚函数,以便在派生类中重新定义该函数更好地适用于对象,但是您在基类中又不能对虚函数给出有意义的实现,这个时候就会原创 2016-04-29 22:04:39 · 243 阅读 · 0 评论 -
二元运算符重载
二元运算符需要两个参数,下面是二元运算符的实例。我们平常使用的加运算符( + )、减运算符( - )、乘运算符( * )和除运算符( / )都属于二元运算符。就像加(+)运算符。下面的实例演示了如何重载加运算符( + )。类似地,您也可以尝试重载减运算符( - )和除运算符( / )。#include using namespace std; class Box{ d原创 2016-04-29 17:54:12 · 652 阅读 · 0 评论 -
C++输入输出运算符重载
C++ 能够使用流提取运算符 >> 和流插入运算符 在这里,有一点很重要,需要把运算符重载函数声明为类的友元函数,这样我们就能不用创建对象而直接调用函数。下面的实例演示了如何重载提取运算符 >> 和插入运算符 /*输入输出运算符*/#includeusing namespace std;class value{ public: //构造函数 value() {原创 2016-04-29 18:30:40 · 671 阅读 · 0 评论 -
C++重载赋值运算符(=)
就像其他运算符一样,您可以重载赋值运算符( = ),用于创建一个对象。例子:/*重载赋值运算符=*/#includeusing namespace std;class value{ public: //构造函数 value() { value1=0; value2=0; } value(int v1,int v2) { value1=v原创 2016-04-29 18:39:34 · 504 阅读 · 0 评论 -
C++重载函数运算符()
函数调用运算符 () 可以被重载用于类的对象。当重载 () 时,不是创造了一种新的调用函数的方式,相反地,这是创建一个可以传递任意数目参数的运算符函数。下面的实例演示了如何重载函数调用运算符 ():/*重载函数运算符()*/#includeusing namespace std;class value{ public: //构造函数 value() { val原创 2016-04-29 18:52:05 · 328 阅读 · 0 评论 -
C++关系运算符重载
C++ 语言支持各种关系运算符( 、 = 、 == 等等),它们可用于比较 C++ 内置的数据类型。您可以重载任何一个关系运算符,重载后的关系运算符可用于比较类的对象。下面的实例演示了如何重载 /*关系运算符重载<*/#includeusing namespace std;class value{ public: //构造函数 value() { val原创 2016-04-29 18:16:00 · 2833 阅读 · 1 评论 -
下标运算符[]重载
下标操作符 [] 通常用于访问数组元素。重载该运算符用于增强操作 C++ 数组的功能。下面的实例演示了如何重载下标运算符 []:/*下标运算符[]重载*/#includeusing namespace std;const int size=5;class array{ private: int arr[size]; public: //构造函数 array()原创 2016-04-29 19:09:12 · 997 阅读 · 0 评论 -
C++ ->重载
类成员访问运算符( -> )可以被重载,但它较为麻烦。它被定义用于为一个类赋予"指针"行为。运算符 -> 必须是一个成员函数。如果使用了 -> 运算符,返回类型必须是指针或者是类的对象。运算符 -> 通常与指针引用运算符 * 结合使用,用于实现"智能指针"的功能。这些指针是行为与正常指针相似的对象,唯一不同的是,当您通过指针访问对象时,它们会执行其他的任务。比如,当指针销毁时,或者当指针指向另原创 2016-04-29 20:08:06 · 1083 阅读 · 0 评论 -
C++多态性
C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphism),字面意思多种形状。 C++多态性是通过虚函数来实现的,虚函数允许子类重新定转载 2016-04-29 21:28:36 · 236 阅读 · 0 评论 -
C++ typedef用法详解
第一、四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针虽转载 2016-04-30 20:21:22 · 320 阅读 · 0 评论 -
C++模板详解
一、类模板定义及实例化1. 定义一个类模板:1 template2 3 class 类名{4 5 // 类定义......6 7 }; 其中,template 是声明类模板的关键字,表示声明一个模板,模板参数可以是一个,也可以是多个,可以是类型参数 ,也可以是非类型参数。类型参数由关键字class或typename及其后面的标识符构成。非类型参数原创 2016-04-30 21:58:40 · 6002 阅读 · 0 评论 -
C++基础实例-类(6)
栈与基础类#if 0#includeusing namespace std;const int MAX=5; //假定栈中最多保存5个数据//定义名为stack的类,其具有栈功能class stack { //数据成员 float num[MAX]; //存放栈数据的数组 int top; //指示栈顶位置的变量publi原创 2016-05-04 21:07:10 · 4016 阅读 · 0 评论 -
C++基础实例-类(7)
enum与class**在C++中,虚函数可称其为他的灵魂,其中加入指针,才会真正体现他的美妙。#if 0/*enum与class*/#include using namespace std;enum Color {Red,Yellow,Green,White};//圆类Circle的定义class Circle{ float radius;public:原创 2016-05-05 13:54:32 · 601 阅读 · 0 评论 -
C++ STL-string实例
vector与iterator#if 0/*容器(vector)与迭代器(iterator)循环查找*/#include#include//STL向量容器#include//STL算法using namespace std;int main(){ vector a;//声明一个变量(向量容器,可以代替数组,动态数组) a.push_back(11); a.push_ba原创 2016-05-18 00:08:18 · 534 阅读 · 0 评论 -
解决multiple definition of的方法
问题原因: 当多个文件包含同一个头文件时,并且你的.H里面没有加上条件编译#ifndef TEST_H#define TEST_H#endif就会独立的解释,然后生成每个文件生成独立的标示符。在编译器连接时,就会将工程中所有的符号整合在一起,由于,文件中有重名变量,于是就出现了重复定义的错误。1: 给每一个头文件加上条件编译,避免该文件被多次引用时被多次原创 2016-05-31 22:30:54 · 1590 阅读 · 0 评论 -
exited eith code错误剖析
1073741571错误是栈溢出,系统默认的栈空间大小是1MB。转自:http://blog.csdn.net/vblittleboy/article/details/6613815解决方法:1、要分配的大量局部动态变量或数组,改成用new分配;2、另一方面如果类的定义中有大数组,不要用该类定义局部变量,改成用new构造对象;3、直接将大容量局部变量数组移到函数外,使其作为转载 2016-06-04 22:04:05 · 336 阅读 · 0 评论 -
C++_STL实例系列
包括C++的STL算法库的基本语法以及众多实例,仅供大家参考学习,如有错误之处,请多多指教。1、基本语法及介绍:http://blog.csdn.net/qq_28796345/article/details/514405862、序列集合等:http://blog.csdn.net/qq_28796345/article/details/514947663、Stri原创 2016-12-07 01:18:14 · 543 阅读 · 0 评论 -
C++基础实例系列
包括C++基本语法众多实例,仅供大家参考学习,如有错误之处,请多多指教。1、基础语法实例:http://blog.csdn.net/qq_28796345/article/details/512925452、数组相关实例:http://blog.csdn.net/qq_28796345/article/details/512974563、结构类型(结构体、枚举等):http:/原创 2016-12-07 01:13:50 · 499 阅读 · 0 评论 -
C++ STL实例(一)
vector#if 0/*vector*/#include#include#include#includeusing namespace std;int main(){ vector ive;//保存int的向量 vector dve;//保存double vector sve;//string vector a;//empty vector b(10,2);/原创 2016-05-18 00:17:20 · 1465 阅读 · 0 评论 -
C++基础实例-文件Io等(5)
基本输入读取#if 0/*读写文件cin.getline*/#include#include#include#includeusing namespace std;main() { //声明变量 FILE *fp1; char str[80]; //从键盘上任意输入一个字符串 cout<<"Inupt a string:"; c原创 2016-05-03 22:07:32 · 3785 阅读 · 0 评论 -
C++常用头文件
#include //异常处理类#include //文件输入/输出#include //定义各种数据类型最值常量#include //参数化输入/输出#include //基本输入/输出支持#include //基于字符串的流#include //STL 堆栈原创 2016-05-03 21:20:23 · 370 阅读 · 0 评论 -
C++模板
有以下这样3个比大小的函数:int max(int x,int y){ return x+y; } double max(double x,double y) { return x+y; } long max(long x,long y){ return x+y;}它们拥有同一个函数名,相同的函数体,却因为参数类型和返回值类型不一样,所以原创 2016-04-30 23:24:11 · 424 阅读 · 0 评论 -
C++预处理器
预处理器是一些指令,指示编译器在实际编译之前所需完成的预处理。所有的预处理器指令都是以井号(#)开头,只有空格字符可以出现在预处理指令之前。预处理指令不是 C++ 语句,所以它们不会以分号(;)结尾。我们已经看到,之前所有的实例中都有 #include 指令。这个宏用于把头文件包含到源文件中。C++ 还支持很多预处理指令,比如 #include、#define、#if、#else、#l原创 2016-05-01 14:13:56 · 418 阅读 · 0 评论 -
C++中sleep()函数
标准库中无sleep函数,但在某些编译系统中是有的,在有些系统库中也有,要根据环境而定。如:linux中有,unsigned int sleep(unsigned intseconds),传入挂起时间,成功返回0,不成功则返回余下的秒数(这里sleep(1),暂停1s)。windows系统中有Sleep函数(注意大写),void Sleep(DWORD dwMilliseconds);原创 2016-05-01 14:38:59 · 32386 阅读 · 0 评论 -
C++信号处理
信号是由操作系统传给进程的中断,会提早终止一个程序。在 UNIX、LINUX、Mac OS X 或 Windows 系统上,可以通过按 Ctrl+C 产生中断。有些信号不能被程序捕获,但是下表所列信号可以在程序中捕获,并可以基于信号采取适当的动作。这些信号是定义在 C++ 头文件 中。信号描述SIGABRT程序的异常终止,如调用 abort。S原创 2016-05-01 15:06:33 · 2225 阅读 · 0 评论 -
C++基础实例(1)
简单面积计算函数注:源码头部的#if 0与尾部的#endif为注释全部/*计算圆的面积与周长*/#includeusing namespace std;#define PI 3.14159double area(double x);//面积double zc(double x);//周长int main(){ double ar=0.0; double cz=0.0;原创 2016-05-02 01:38:28 · 4156 阅读 · 1 评论 -
C++基础实例(2)
一维数组#if 0/*数组*/#includeusing namespace std;int main(){ //声明数组和变量 int i,sum=0,a[5]; //从键盘上循环为数组赋值 for(i=0;i<5;i++) { cout<<"a["<<i<<"]="; cin>>a[i]; } //直接显示数组元素 cout<<a[0]<<"原创 2016-05-02 18:11:11 · 573 阅读 · 0 评论 -
C++基础实例-结构类型(3)
struct#if 0#includeusing namespace std;main(){ //定义结构类型 struct books { char title[20]; char author[15]; int pages; float price; } ; //声明结构变量原创 2016-05-02 21:02:09 · 3916 阅读 · 0 评论 -
C++基础实例-函数等(4)
基本函数#if 0/*基本函数*/#includeusing namespace std;//add()函数的定义,其有返回值double add(double x,double y){ double z; z=x+y; cout<<x<<"+"<<y<<"="<<z<<endl; return(z);}main(){ double原创 2016-05-03 17:17:18 · 3407 阅读 · 0 评论 -
++与--运算符重载
递增运算符( ++ )和递减运算符( -- )是 C++ 语言中两个重要的一元运算符。下面的实例演示了如何重载递增运算符( ++ ),包括前缀和后缀两种用法:/*++重载(此程序演示时钟)*/#includeusing namespace std;class time{ public: //构造函数 time() { //初始化 hours=0;原创 2016-04-29 17:18:49 · 367 阅读 · 0 评论