【《Effective C++》:条款41-条款42】教程文章相关的互联网学习教程文章

C++string中find,find_first_of和find_last_of的用法【代码】【图】

1.findstr.find(str1)说明:从前向后在str中找到str1,并返回其索引值,否则返回-12.find_first_ofstr.find_first_of(str1)说明:从前向后在str中找到str1,并返回其索引值,否则返回-13.find_last_ofstr.find_last_of(str1)说明:从后向前在str中找到str1,并返回其从后向前的索引值,否则返回-1#include<iostream> using namespace std;int main(void) { string s = "一蓑烟雨任平生。";int len = s.size();int count...

c++基本语法【代码】

此文主要针对有c语言基础的人。1. 基本语法对象 - 对象具有状态和行为。例如:一只狗的状态 - 颜色、名称、品种,行为 - 摇动、叫唤、吃。对象是类的实例。类 - 类可以定义为描述对象行为/状态的模板/蓝图。方法 - 从基本上说,一个方法表示一种行为。一个类可以包含多个方法。可以在方法中写入逻辑、操作数据以及执行所有的动作。即时变量 - 每个对象都有其独特的即时变量。对象的状态是由这些即时变量的值创建的。 2. 数据类型基...

POJ 2503 Babelfish (c++)(map容器)【代码】

题目大意就是给两个单词,前面个单词是后面个单词的翻译,也就是说存在着一种由键到值的映射关系,以输入空行为标志结束录入的对应关系,之后输入单词输出对应翻译。所以此题可以用c++的map容器建立对应关系来解决。 代码如下: 1 #include<iostream>2 #include<map>3 #include<cstdio>4 #include<cstring>5usingnamespace std;6int main(){7char str1[35] ;8char key[35] , value[35] ;9 map<string , string> map_ ; 10while...

C++并发编程学习笔记<2> 线程管理

线程管理 基本线程管理 启动一个线程 <1>最简单的一种类型void do_some_work();std::thread my_thread(do_some_work); <2>函数对象的形式#include<iostream> #include<thread> using namespace std;class Say_hello { public:void operator()(){cout<<"hello";} };int main() {Say_hello hello;std::thread t(hello);t.join();return 0; } 一旦开启一个线程,你需要明确地决定是否要等它结束 (通过join()函数 ),或让它自己后台...

数据结构-红黑树(Red-Black Tree)的C++实现模板【代码】

红黑树的实现还真不简单,各种染色旋转足足折腾了笔者几天。。 不过收获也是巨大的。笔者现在终于明白为啥二叉搜索树这么重要了,确实很有用。 下面上代码。 细心的朋友可能会觉得似乎少了那么几个接口,没错,因为 Precessor(求前驱) / Successor(求后继) / getMaximum (求树中最大值)/ getMinimum(求树中最小值)/ Inorder Traversal(中序遍历)/ Postorder Traversal(后序遍历) 这些操作都可以直接用笔者二叉...

c++模板元编程【代码】

范例:// 主模板 template<int N> struct Fib {enum { Result = Fib<N-1>::Result + Fib<N-2>::Result }; };// 完全特化版 template <> struct Fib<1> {enum { Result = 1 }; };// 完全特化版 template <> struct Fib<0> {enum { Result = 0 }; };int main() {int i = Fib<10>::Result;// std::cout << i << std::endl; }主要思想利用模板特化机制实现编译期条件选择结构,利用递归模板实现编译期循环结构,模板元程序则由编译器在...

c++(vector 开辟的空间的优化)【代码】

c++(vector 开辟的空间的优化)若提前知道大概需要开辟的空间这样写会优化代码void test01() {vector<int> v;int *p = NULL;//设置预留空间v.reserve(100000);int num = 0;for (int i = 0; i < 100000; ++i){v.push_back(i);if(p!=&v[0]){p = &v[0];num++;}}cout << num << endl;//开辟100000个数据用了多少次 } 原文:https://www.cnblogs.com/lodger47/p/14709452.html

C++实现KDTree【代码】【图】

简介??k-d树(k-dimensional),是一种分割k维数据空间的数据结构(对数据点在k维空间中划分的一种数据结构),主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。举例 ??上图就是一颗kdtree,可以看出kdtree是二叉搜索树的变种。 ??kdtree的性质:kdtree具有平衡的特质,两树叶的高度差不超过1。(树越平衡代表着分割得越平均,搜索的时间越少)数据只存放在叶子结点,而根结点和中间结点存放一些空间划分信息(例如划...

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

类引入到眼下为止我们所写的自己定义类型都是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...

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类 用...