C++ - 技术教程文章

C++基础学习教程(七)----类编写及类的两个特性解析--->多态&继承

类引入到眼下为止我们所写的自己定义类型都是keywordstruct,从如今起我们将採用class方式定义类,这样的方式对于学习过其它高级语言包含脚本(Such as Python)的人来说再熟悉只是了.可是在写之前我们还是须要比較一下用struct和class之间有什么差别.首先对于struct,在C兼容性方面非常重要,虽然C++是有别于C的还有一门语言,但很多程序还是必须与C交互,C++有两个重要功能,能够方便的与C交互.当中之中的一个的就是POD,即是Plain Old Dat...

CAF(C++ actor framework)使用随笔(延迟发送,消息转发,消息优先级)(四)【代码】【图】

e). 消息延迟发送(和前面没太大区别直接上代码)#include <iostream> #include "caf/all.hpp" #include "caf/io/all.hpp" #include <string> #include <chrono> usingnamespace std; usingnamespace caf;behavior fun(event_based_actor* self){return {[self](conststring& str){aout(self)<<str<<endl;auto t2 = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());cout<<"dalay time :"<<t2<<endl;self-...

[C++]LeetCode: 76 Rotate List

题目: Given a list, rotate the list to the right by k places, where k is non-negative. For example: Given 1->2->3->4->5->NULL and k = 2, return 4->5->1->2->3->NULL. 给出一个链表,和一个非负数k, 要求从链表尾节点开始计数,k步进行旋转,得到新的链表。Given [0,1,2], rotate 1 steps to the right -> [2,0,1]. Given [0,1,2], rotate 2 steps to the right -> [1,2,0]. Given [0,1,2], rotate 3 steps to the right...

顺序队列c++【代码】

通过数组建立队列 1 #include <iostream>2 3usingnamespace std;4 5 template<class T>6class MyQueue7{8public:9 MyQueue(int queuecapacity=10);10 ~MyQueue();11 12bool IsEmpty() const;13 T& Front() const;14 T& Rear() const;15void Push(const T& item);16void Pop();17private:18 T *Queue;19int myfront;20int myrear;21int capacity;22};23 template<class T>24 inline MyQueue<T>::MyQueue(int...

VC++ 全局变量定义

vc定义全局变量及extern用法 :全局变量一般这样定义:1。在一类的.cpp中定义 int myInt;然后再在要用到的地方的.cpp里extern int myInt;这样就可以用了。2。在stdafx.cpp中加入:int myInt;然后在stdafx.h中加入:extern int myInt这样定义以后无论在什么文件中都是可见的.原文:https://www.cnblogs.com/profession/p/12310795.html

ID3决策树算法原理及C++实现(其中代码转自别人的博客)【图】

分类是数据挖掘中十分重要的组成部分.分类作为一种无监督学习方式被广泛的使用.之前关于"数据挖掘中十大经典算法"中,基于ID3核心思想的分类算法C4.5榜上有名.所以不难看出ID3在数据分类中是多么的重要了.ID3又称为决策树算法,虽然现在广义的决策树算法不止ID3一种,但是由于ID3的重要性,习惯是还是把ID3和决策树算法等价起来.另外无监督学习方式我还要多说两句.无监督学习方式包括决策树算法,基于规则的分类,神经网络等.这些分类方式...

Boost.Asio c++ 网络编程翻译(10)【代码】

read/write方法这些方法对一个流进行读写操作(可以是套接字,或者其他表现的像流的类):async_read(stream, buffer [, completion],handler):这个方法异步地从一个流读取。结束时,处理方法被调用。处理方法的格式是:void handler(const boost::system::error_ code & err, size_tbytes);。你可以选择指定一个完成处理方法。完成处理方法会在每个read操作调用成功之后调用,然后告诉Boost.Asio async_read操作是否完成(如果没...

一个C++bug引入的许多知识【图】

一、前言 假设我们有一个Car类,用了表示一个车,它有id,名字,牌照等许多东西,还有一个表示车的部件CarPart。 但出于某方面的考虑,我们不打算在产生car这个对象的时候,就生产出这个车,你可以认为这个时候,只有一个纸糊的车摆在你的面前,它有id,有名字,有牌照,但是它不能动,只有我们打算启动这个车的时候,才去给这个车配置发动机,轮胎等各个部件。 二、错误代码1//CarPart类 用了标识车内的各个部件 //Car类 用...

如何用C++ 写Python模块扩展(二)【代码】【图】

Python模块包含的类创建(下)类的方法表创建 直接上代码 static PyMethodDef VCam_MethodMembers[] = //类的所有成员函数结构列表同样是以全NULL结构结束 {{ "set_fill", (PyCFunction)VCam_SetFill, METH_VARARGS, "Set video resize method (0: Aspect fit, 1: Aspect fill, 2: Stretch), used when input frame size differs from VCam output size." },{ "mirror", (PyCFunction)VCam_Mirror, METH_VARARGS, "Mirror the...

c++ primer复习(三)

1 istream、ostream类型,cin、cout、cerr是istream或ostream类型的具体的对象,<<和>>是操纵符 getline函数的参数是istream和string类型的两个引用形参 面向对象的标准库,3个头文件:iostream,fstream、sstream 对应的类型:istream,ostream,iostream;ifstream,ofstream,fstream;istringstream,ostringstream,stringstream2 标准库类型不能复制或赋值 流对象不能存储在vector或其他容器中;形参或返回值不能使流对象...

在VS2015中用C++创建DLL并用C++调用且同一时候实现对DLL的调试【图】

一:用C++创建DLL? ??? ? ? ?依照【在VS2015中用C++编写可被其他语言调用的动态库DLL】提示创建C++编写的DLL。或參考【 在VS2015中用C++创建DLL并用C#调用且同一时候实现对DLL的调试】中的步骤二:用C++创建DLL。二:用C++隐式调用DLL???? ? ? ? 由于是隐式调用DLL所以在Debug模式下生成DLL了。然后调用时也在Debug模式下。这样在调试时就不用赋值动态库了 ? ? ? ? 隐式调用仅在C++CallDLL.h文件里设置了lib文件的相对位置,并没有...

C++ 字符串编程训练3

标题:比较一个数组是否为回文数组说明:回文数组即从头到尾和从尾到头都是一样的,例如数组{1,2,3,4,5,4,3,2,1}或者数组{1,2,3,4,4,3,2,1}都是回文数组。bool is_huiwen(int A[],int n){ for(int i=0;i<n/2;i++)//n/2是关键,因为不需要再从尾到头比较 { if(A[i]!=A[n-i-1])//不满足回文要求 { return false; } } return true;}int main(){ int n; cin>>n; int *A=new int[n]; fo...

C++ Primer【第五版】习题参考答案——第五章(语句)

#include <iostream> #include <vector> #include <string>using namespace std; /******************************************************************* Ex_5_1: 空语句就是只含有一个分号的语句。 如果在程序的某个地方,语法上要求有一条语句,但是逻辑上不需要, 这时就需要一条空语句。 Ex_5_2: 块就是由花括号包围的复合语句。 如果在程序的某个地方,语法上要求有一条语句,但是逻辑上要求多条语句, 这时就需要块(复合语...

C++笔记【图】

原文:http://blog.csdn.net/dezhihuang/article/details/40894277

[转][C++ 11]override and final - write clean and maintainable C++ code【代码】

原文:http://arne-mertz.de/2015/12/modern-c-features-override-and-final/ Today I write about a pair of less often discussed, less complicated features introduced in C++11, which are nevertheless useful. Both can provide some additional security and clarity when it comes to deriving classes and overloading virtual functions. Overriding virtual methodsHave you ever come across the problem that you ov...

修改的C++版Opengl艺术画实现

用C++语言改编了一个python版本的艺术画opengl实现,代码与效果如下感觉用c++绘制速度就是快#include <math.h> #include <GL/glut.h> int W, H, R;void init() {glClearColor(1, 1, 1, 1); }void drawFunc() {float r;glClear(GL_COLOR_BUFFER_BIT);glColor3f(0, 0, 0);glBegin(GL_POINTS);for(float x = -R; x <= R; x += 0.04) {for(float y = -R; y <= R; y += 0.04) {r = cos(x) + sin(y);glColor3f( cos(y * r), cos( x *...

C++(迭代法求平方根)【代码】【图】

今天笔者突然想用C++实现求平方根的程序,整体的思路是采用迭代法  首先,写出迭代表达是Xk+1=0.5*(Xk+Y/Xk),由于笔者只是求解近似解,所以,我为的控制了迭代的次数,选择5次。代码如下: 1 #include <iostream>2usingnamespace std;3class square {4public:5 square(float x, float y) {6this->x = x;7this->y = y;8 }9void it_root() { 10 x = 0.5f*(x + y / x); 11 } 12float getX() const { return x; }...

c++随机数引擎【代码】

/*** 作者: cwl* 描述: c++ 随机数引擎生成随机数* */ #include <bits/stdc++.h>using namespace std;template <typename T> void printVector(std::vector<T> &vec, int index = 0) {cout << "[" << index << "] ";for(auto &iter: vec) {cout << "" << iter << " ";}cout << endl; }int main() {//随机数普遍是通过线性同余运算产生的为伪随机,之前我们用rand() % mod//这里我们尝试随机数引擎auto randomVectorUnsigned = [](i...

Windows/MFC,C++中的TCHAR体系/char体系/WCHAR体系及其相互转换【图】

</pre><pre>Windows/MFC,C++编程中经常遇到UNICODE、ANSI字符串,并需要对这些字符串进行转换,本文对这些体系与其转换进行了总结。第一篇:基础篇3大体系常用函数及解析详见博文:http://blog.csdn.net/u010003835/article/details/47344775 此外,接下来我书写的函数以Windows对char*,TCHAR*,const TCHAR*的命名规则来书写不熟悉的童鞋可以参考博文: http://blog.csdn.net/u010003835/article/details/47604553TCHAR类型,根据环...

VC++注射过程【图】

2014/10/19 11:12 // stdafx.h : // // //#pragma once#include "targetver.h"#include <stdio.h> #include <tchar.h>//myself #include <Windows.h>#include <TlHelp32.h>#include <iostream> using namespace std;// TODO: // Inject.cpp : //#include "stdafx.h"/* * */ int EnableDebugePriv(const char * name){HANDLE hToken;/** * PrivilegeCount the number of entries in the Privileges array* Privileges[ANYSIZ...

计算机二级软件VC++6.0下载地址【图】

计算机二级软件VC++6.0介绍:适合所有参加全国计算机等级考试的童鞋们……见图如下: 下载地址:(以下两者任选其一即可)(1)、计算机二级软件VC++6.0(16.35MB)(2)、计算机二级软件VC++6.0(45.26MB)(适合Windows开发软件)原文:http://www.cnblogs.com/doudongchun/p/3699573.html

c++顺序容器(3)

1.额外的string操作除了前面大多数顺序容器的共同操作外,string类型还提供了string和c风格字符数组之间的相互转换,且允许我们用下标代替迭代器版本。string s(cp,n);//cp为数组,拷贝前n个,数组需以空字符结尾,拷贝到空字符结束 string s(s2,pos2);//s2为string,从pos2开始的字符拷贝 string s(s2,pos2,len2);s.substr(m,n);取s字符的m位置到n位置string还有其他insert和erase版本,以及两个额外的成员函数append和repla...

python嵌入到C++的一些理解

1.简介(比较各自的特点,提出问题)C++ 与 python都是用的比较广泛的语言,各有各的优点;C++性能优异,python简单方便库丰富,如果能够结合两者使用就很好。python作为一种脚本语言,解释器会将其翻译成可执行代码。python强大呀,提供了C接口供C/C++调用,意思就是C/C++就能嵌入python代码,实际中就能够发挥两种语言的优点了。 2.如何实现在实现上,Python提供了C接口供C/C++使用,以C语言lib库的形式提供include和lib;可以在...

第7次C++实验【代码】【图】

一。实验结论:1.基础部分:(1)11-7 #include<iostream> usingnamespace std; int main() {ios_base::fmtflags original_flags=cout.flags();//切换输出模式类的声明cout<<812<<"|";cout.setf(ios_base::left,ios_base::adjustfield);//确定输出内容的对齐方向为左对齐cout.width(10);//确定输出内容宽度为10cout<<813<<815<<"\n";cout.unsetf(ios_base::adjustfield);//清除对齐方式cout.precision(2);//确定输出数值精确度为小...

【c++】实现运算符的重载

// 实现运算符的重载#include <iostream> using namespace std;class Int {public:Int(int i = 0) :m(i){cout << "constructed function" << endl;}~Int(){cout << "destructor" << endl;}public:Int operator+(const Int &d);Int operator-(const Int &d);Int operator*(const Int &d);Int operator/(const Int &d);Int operator|(const Int &d);Int operator&(const Int &d);Int operator^(const Int &d);Int operator~();Int op...

[LeetCode] 033. Search in Rotated Sorted Array (Hard) (C++)

指数:[LeetCode] Leetcode 解决问题的指数 (C++/Java/Python/Sql) Github: https://github.com/illuz/leetcode033. Search in Rotated Sorted Array (Hard)链接:题目:https://leetcode.com/problems/search-in-rotated-sorted-array/ 代码(github):https://github.com/illuz/leetcode题意:在一个旋转过的有序数组中找一个数。 比方 4 5 6 7 0 1 2 就是一个“旋转过的有序数组”。分析:这是单纯二分搜索的变形。 由于旋转过不...

C++中各种数据类型占据字节长度【图】

准备校招笔试的时候经常遇到C++某个数据类型占据多少个字节的问题,查阅了下资料,总结如下:首先罗列一下C++中的数据类型都有哪些:1、整形:int、long2、字符型:char、wchar_t3、布尔型:bool4、浮点型:float、double5、指针 一、整形  int占据操作系统一个内存单元的大小。long跟int相同早先16位操作系统一个内存单元是16位,所以是2个字节;32位系统一个内存单元是是32位,所以是4字节;64位操作系统一个内存单元是16位,故...

C++ void/指针与其他数据类型的相互转换【代码】

在写opencv多线程的时候用到了pthread_create()函数,int pthread_create(pthread_t *tidp,const pthread_attr_t *attr,(void*)(*start_rtn)(void*),void *arg);其中函数里最后一个变量声明为void* args。因为涉及到函数之间的传参,因此考虑将void*指针转换为string类型存放opencv图片存放路径,因为void*指针的特殊性,将void*作为中间指针变量,在string转换后的void*指针传入后,再将void* 转换为string类型,在调用的线程函数...

C++入门经典-例2.3-在print函数中使用附加符号【代码】【图】

1:代码如下:// 2.3.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h"int main() {long iLong=100000; /*定义长整型变量,为其赋值*/printf("the Long is %ld\n",iLong); /*输出长整型变量*/printf("the string is: %s\n","LOVE"); /*输出字符串*/printf("the string is: %10s\n","LOVE"); /*使用m控制输出列*/printf("the string is: %-10s\n","...

C/C++中利用空指针简化代码,提高效率

这里的写法,可以避免使用 for 循环,减少栈空间内存的使用和减少运行时的计算开销!#include <iostream> #include <string> using namespace std; void print_char(char* array[]);//函数原形声明 void main(void) { char* test[]={"abc","cde","fgh",NULL};//这里添加一个NULL,表示不指向任何地址,值为0 print_char(test); cin.get(); } void print_char(char* array[]) { ...