C++ - 技术教程文章

Pair C++【图】

关于Pair的东西是学习深度优先搜索的时候涉及的这里简单的讲讲。基本会用就可以。pair的类型: 首先:pair 是 一种模版类型。每个pair 可以存储两个值。 这两种值的类型无限制。也可以将自己写的struct结构体的对象放进去。。 pair<string,int> p; pair<int ,int > p; pair<double,int> p; 等等都行。 如果一个函数有两个返回值 的话,如果是相同类型,就可以用数组返回,如果是不同类型, 就可以自己写个stru...

关于C++的面试题

一、谈一谈static 这个问题不算太难,但是要完整的把static的作用说完还是有一定难度的。A、首先解释static在C语言中的作用,这些作用在C++中被完全继承了。(1)所有使用static修饰过的变量如果未被显式初始化,则被存储在bss段,BSS段在二进制程序中是没有实际存储的,只有在程序运行时才会为BSS段分配内存同时进行默认初始化 ,在C语言中也就是赋值为0 。如果显示初始化了,那么就存储在data段。而不管是bss段还是data段,...

C++ STL标准模板库(stack)【代码】

//stack的使用#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<stack> usingnamespace std;/* 引用头文件 #include<stack>stack类本身是一个类模板stack(堆栈) 是一个容器类的改编,为程序员提供了堆栈的全部功能,— —也就是说实现了一个先进后出(FILO)的数据结构。 1.empty() 堆栈为空则返回真 2.pop() 移除栈顶元素 3.push() 在栈顶增加元素 4.size() 返回栈中元素数目 5.top() 返回栈顶元素*/class Stude...

LeetCode 126. Word Ladder II 单词接龙 II(C++/Java)【代码】

题目:Given two words (beginWord and endWord), and a dictionary‘s word list, find all shortest transformation sequence(s) from beginWord to endWord, such that:Only one letter can be changed at a timeEach transformed word must exist in the word list. Note that beginWord is not a transformed word.Note:Return an empty list if there is no such transformation sequence.All words have the same length.Al...

c++符号常量:limits头文件【代码】

CHAR_BIT char的位数 CHAR_MAX char的最大值 CHAR_MIN char的最小值 SCHAR_MAX signed char的最大值 SCHR_MIN signedchar的最小值 UCHAR_MAX unsigned char的最大值 SHRT_MAX short的最大值 SHRT_MIN short的最小值 USHRT_MAX unsigned short的最大值 INT_MAX int的最大值 INT_MIN int的最小值 UNIT_MAX unsigned int的最大值 LONG_MAX long的最大值i LONG_MIN long的最小值 ULONG_MAX unsigned long的最大值 LLONG_MAX long long的...

C++ 类和对象基本认识和创建【代码】

? 对象赋值语句:对象1 = 对象2 注意的地方:对象的类型必须相同。两个对象之间的赋值,只是数据成员的赋值,而不对成员函数赋值。不同对象的成员函数占有不同的存储空间,而不同对象的成员函数是占用同一个函数代码段,无法对它们赋值。当类中有 ++ 指针 ++ 时,需要进行深拷贝。构造函数:构造函数是一种特殊的成员函数,它主要用于为对象分配空间,进行初始化。建立对象的两种形式:形式1:类名 对象[(实参表)] 例如: Date d...

Ubuntu / Debian / Deepin等 Sublime Text 3 配置C++环境(一键编译&运行,格式化代码)【代码】

配置编译环境:进sublime,然后点击Tools->Build System->New build System直接用下面的替换{ "shell_cmd": "g++ ‘${file}‘ -o ‘${file_path}/${file_base_name}‘", "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", "working_dir": "${file_path}", "selector": "source.c, source.c++", "variants": [ { "name": "Build & Run", "shell_cmd": "x-terminal-emulator -e bash -c \"g++ ‘${file}‘ -o ‘${...

安徽省小学组省赛2014年第一题 木板面积(C++)【代码】

1.木板面积(area)一年一次的夏令营又要开始了,卡卡西和小伙伴们早就做好了准备,满心期待着这趟快乐之旅。在一个阳光明媚的清晨,卡卡西在老师的带领下来到了这次夏令营的首站——“神奇木材加工厂”。这个木材加工厂比较特别,工人们只制作圆形和长方形样式的木板,工厂的测量工人每天需要计算每块成品木板的面积以便统计使用木材的数量。如果是一个圆形木板,他们只需要测量半径的长度;如果是一个长方形木板,仅需要测量两条...

c++ stl中集合(set)的使用

set是关联式容器,有自动去重和排序的功能。C++ STL中标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉树:红黑树,也成为RB树(Red-Black Tree)。RB树的统计性能要好于一般平衡二叉树,所以被STL选择作为了关联容器的内部结构。begin()    ,返回set容器的第一个元素end()      ,返回set容器的最后一个元素clear()    ,删除set容器中的所有的元素empty()    ,判断set容器是...

Effective C++:条款12:复制对象时勿忘其每一个成分

(一)一个继承体系的声明:class Date {...}; class Customer { public:... private:string name;Date lastTransaction; };class PriorityCustomer : public Customer { public:PriorityCustomer(const PriorityCustomer& rhs);PriorityCustomer& operator=(const PriorityCustomer& rhs); private:int priority; };任何时候只要我们承担起“为derived class撰写copying函数”的重责大任,必须很小心的也复制其base class成分。但...

学习记录--C++继承与派生编程题【代码】【图】

1.设计一个圆类circle和一个桌子类table,另设计一个圆桌类roundtable,它是从前两个类派生出来的要求输出一个圆桌的高度,面积与颜色等。#include<iostream> #include<string> usingnamespace std; #define PI 3.14; class circle { public:circle(){//默认构造函数 }void setR(double r){m_r = r;}double getR(){return m_r;}double getArea(){double area;area = m_r *m_r * PI;return area;} protected:double m_r;//圆的半...

C++虚表

对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例中这个表被分配在了这个实例的内存中,所以,当我们用父类的指针来操作一个子类的时候,这张虚函数表就显得由为重要了,它就像一个地图一样,指明了实际所应该调用的函数。 cla...

c++之运算符

运算符分为:算数运算符、赋值运算符、比较运算符、逻辑运算符算数运算符:+(正) -(负) + - * / % i++(先赋值后自增) ++i(先自增后赋值) i--(先赋值后自减) --i(先自减后赋值)赋值运算符:= += -= *= /= %=比较运算符:== != < > <= >=逻辑运算符:!(非) &&(与) ||(或)原文:https://www.cnblogs.com/xiximayou/p/12079565.html

C++求两个数的最大值【代码】

//不使用if,:?等推断语句。求两个数字中最大的那个数字。#include<iostream> using namespace std;int main() {int a = - 10;int b = - 100;int c = (a + b + abs(a - b))/ 2;//abs(x)是求绝对值的函数,a+b+(a与b的差值)就是最大数的两倍,再除以2即为最大数。 cout << c << endl;return 0; } #include <iostream>usingnamespacestd; int main() {int a = 10;int b = 100;int c = a - b;//int sr[] = { a, b };int i = unsi...

C++输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,

//输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字, //例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 //则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. #include <iostream> using namespace std; void Grial(int (*a)[5],int n) {int a1 = 0;int b1 = n-1;bool visted[n][n];for(int k=0;k<n;k++){for(int m=0;m<n;m++){visted[k][m]=false;}}int i=0;int j=0;while(1){for(i=a1...

C++结构体【代码】

结构体是用户定义的类型,而结构声明定义了这种类型的数据属性。1struct inflatable // structure declaration2{ 3char name[20]; 4float volume; 5double price; 6 };关键字 struct 表明,这些代码定义的是一个结构体的布局。标识符 inflatable 是这种数据格式的名称,因此新类型的名称为 inflatable。这样,便可以像创建 char 或 int 类型的变量那样创建 inflatable 类型的变量类。struct inflatable goose; // keyword struct ...

Socket通信原理探讨(C++为例)【代码】【图】

一、网络中进程之间如何通信? 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类:1、消息传递(管道、FIFO、消息队列)2、同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量)3、共享内存(匿名的和具名的)4、远程过程调用(Solaris门和Sun RPC) 但这些都不是本文的主题!我们要讨论的是网络中进程之间如何通信?首要解决的问题是如何唯一标识一个进程,否则通信无从谈起!在本地可以通过进程PID来唯一...

C/C++ New与Delete (小例子)【代码】

转自:http://blog.csdn.net/chenzujie/article/details/7011639 先来看两段小程序: 1)、 #include <iostream.h> #include <String.h> void main(void) { char *str1 = "just have fun"; char *str2 = "happy day"; char *sTmpPtr = newchar[255]; char *sMyStrPtr = newchar[255];strcpy(sTmpPtr, str1); strcpy(sMyStrPtr, str2); delete sMyStrPtr ; strcpy(sMyStrPtr, sTmpPtr); cout << sMyStrPtr << endl; } 2)、 #incl...

转载:C++中两个类中互相包含对方对象的指针问题【代码】【图】

原文链接:http://www.cnblogs.com/hanxi/archive/2012/07/25/2608068.html  前几天很不爽,因为C++中两个类中互相包含对方对象的指针编译时提示某一个类未定义。。。所以我就想啊想,这样也对,我的头文件都有#ifndef的,包含了一次就不能再包含了,以为就实现不了这样的功能,于是就改了设计方案:class A { public:A(B* pB):m_pB(pB){}private:B* m_pB; };class B { public:B() {} private:int m_i; };只在一个类中包含另一个...

c/c++

常见的数据类型,bit,byte,char,short,int,long,float,double,BYTE,WORD,DWORD,数组,指针,引用,对象常见的操作符,<<,>>,=,++,new,delete;面向对象的特性,封装(class、function),继承(public、protected、private),多态(virtual);具有重要意义的修饰符,const ,static,external;内存的存储空间结构;原文:https://www.cnblogs.com/cui-shaoqiang/p/9088934.html

c++实现插入排序算法【代码】

#include <iostream> usingnamespace std;//插入排序法void insertSortMethod(int intArr[],int arrLen); void printArrInfo(int intArr[],int arrLen); int main() {int arr[] = { 1,3,5,2,4,7,9,6,8 };int len = sizeof(arr) / sizeof(int);insertSortMethod(arr,len);printArrInfo(arr,len);system("pause");return0; } //插入排序法void insertSortMethod(int intArr[],int arrLen) {int start = 0;for (int i = 0; i < arrLen...

C++获取当前时间和计算程序运行时间的方法【代码】

C++获取当前时间和计算程序运行时间的方法 获取当前时间: #include <iostream> #include <Windows.h> using namespace std; int main() { SYSTEMTIME sys; GetLocalTime(&sys); cout<<sys.wYear<<"年"; cout<<sys.wMonth<<"月"; cout<<sys.wDay<<"日"; cout<<sys.wHour<<"时"; cout<<sys.wMinute<<"分"; cout<<sys.wSecond<<"秒"; cout<<sys.wMilliseconds<<"毫秒"; cout<<",星期"<<sys.wDayO...

C++ const关键字【代码】【图】

关于顶层const 底层constconst与指针配合使用有两种作用,一是限制指针变量,二是限制指针变量指向的数据限制指针变量本身1 int * const p2;//const修饰的是指针变量限制指针变量本身的意思是,指针变量本身的值不能被修改,所以被 const 修饰的指针变量指针只能在定义时初始化,不能定义之后再赋值,错误代码如下限制指针变量指向的数据1 const int *p1; 2 int const *p1;上面两种写法都可以,一般使用第一种,限制指针变量指向的...

C++ STL/BOOST--hash table

哈希表(hash table):图书馆(图书分类):-->A-1-->A-2-->A-3-->A-4-->B-1-->B-2-->B-3-->B-4-->C-1-->C-2-->C-3-->C-4……医院(病例分类):-->A-1-->A-2-->A-3-->A-4-->B-1-->B-2-->B-3-->B-4-->C-1-->C-2-->C-3-->C-4……大型超市supermarket(条码分类):-->A-1-->A-2-->A-3-->A-4-->B-1-->B-2-->B-3-->B-4-->C-1-->C-2-->C-3-->C-4……原文:http://my.oschina.net/u/2517253/blog/531658

c++第五次作业

项目二:数组选择#include<iostream> using namespace std; int main() { const int N=10; int A[N],B[N],i,j,k=0; cout<<"从键盘中输入十个数"<<endl; for(i=0;i<N;i++) cin>>A[i]; for(i=0;i<N;i++) { for(j=0;j<N;j++) { if(i==j) continue; if(A[i]==A[j]) break; if(j==N-1) { B[k]=A[i]; k++; } } } cout<<"数组B为:"; for(i=0;i<k;i++) cout<<B[i]<<" "; return 0; } 项目四:字串符#inc...

C++中的显式类型转化【代码】

类型转化也许大家并不陌生,int i; float j; j = (float)i; i = (int)j; 像这样的显式转化其实很常见,强制类型转换可能会丢失部分数据,所以如果不加(int)做强制转换,严检查的编译会报错,宽检查的编译会报warning。在C语言中,指针是4字节或者8字节的,所以指针之间的强制转换在转换的时候就如同不同的整数类型之间的赋值,问题在于对该指针的使用上,必须确保该指针确实可以做出这样的强制转换。常见的情况是void*到不同的指...

C++primer拾遗(第九章:顺序容器)【图】

第九章顺序容器的总结,太常用了所以太重要了。不过里面的string部分太多,没有写上来,以后要用的时候直接查书吧总结不易,转载注明出处,谢谢。http://www.cnblogs.com/linhaowei0389/ 原文:http://www.cnblogs.com/linhaowei0389/p/6647188.html

C++ &引用【图】

原文:https://www.cnblogs.com/jcahsy/p/12884823.html

C++中的字面值指定类型

C++中只有内置类型存在字面值,没有类(class)类型字面值.例如:0是int类型的字面值,3.14159是double类型的字面值.字面值类型很多整型浮点字面值20 // decimal 十进制024 // octal 八进制0X14 // hexadecimal 十六进制128u ,128U // unsigned1024UL // unsigned long1L // long 长整形8Lu ...

c++调用lua【代码】【图】

我们主要解决如下几个问题:转:http://www.cnblogs.com/zisou/p/cocos2dx-lua2.html1,C++如何获取Lua里面的一个变量值?2,C++如何获取Lua里面一个Table(Lua利用Table实现面向对象,那就能调用Lua里面的比较高级的引用方法)3,C++如何访问Lua里面的一个方法?4,C++如何访问Lua里面的一个带参数的方法?5,C++如何访问Lua里面的一个带参数的方法并且带返回值?如果以上问题都解决了,基本能满足我们游戏开发中遇到的数据通信的...