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

[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[]) { ...

C++ HOJ 火车进站

【问题描写叙述】 给定一个正整数N代表火车数量。0<N<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号。要求以字典序排序输出火车出站的序列号。 输入: 有多组測试用例,每一组第一行输入一个正整数N(0<N<10),第二行包含N个正整数,范围为1到9。 输出: 输出以字典序排序的火车出站序列号,每一个编号以空格隔开,每一个输出序列换行。详细见sample。 例子输入: 3 1 2 3 例子输出: 1 2 3 1 3 2 2 1 3 2...

c++ 指向类成员函数的函数指针【代码】

// ConsoleApplication34.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h" #include <iostream> usingnamespace std;class Parent { public:Parent(){//cout << "我是爹" << endl; }virtualvoid print() {cout << "我是爹" << endl;} private:int a; }; class Child :public Parent { public:Child(){}void print() {cout << "我是儿子" << endl;} private:int b; };int main() {//返回值类型 (域作用符::*函数指针...

《C++ Primer Plus》15.5 类型转换运算符 学习笔记

C++相对C更严格地限制允许的类型转换,并添加4个类型转换运算符,是转换过程更规范:* dynamic_cast;* const_cast;* static_cast;* reinterpret_cast。【dynamic_cast运算符】假设High和Low是两个类,而ph和pl的类型分别是High*和Low*,则仅当Low是High的可访问基类(直接或间接)时,下面的语句才将一个Low*指针赋给pl:pl = dynamic_cast<Low *> ph;否则,该与据将空指针赋给pl。通常,该运算符的语法如下:dynamic_cast < ty...

C++泛型线性查找算法——find【代码】

C++泛型线性查找算法——find《泛型编程和STL》笔记及思考。线性查找可能是最为简单的一类查找算法了。他所作用的数据结构为一维线性的空间。这篇文章主要介绍使用 C++ 实现泛型算法 find的过程。C 版本首先介绍 C find 算法的实现,用以引入 C++ 版本。char *find1(char *first,char *last,int c) {while(first != last && *first != c)++first;return first; }该版本的算法循环检查每个元素,尾后指针(last)作为结束标识。使用举...

C++中const的一些知识点【代码】

常成员函数对常成员函数进行操作时,需要强调的是,必须在成员函数的声明和定义处同时加上 const 关键字。char *getname() const和char *getname()是两个不同的函数原型,如果只在一个地方加 const 会导致声明和定义处的函数原型冲突。 (重点!重点!重点!)最后再来区分一下 const 的位置:函数开头的 const 用来修饰函数的返回值,表示返回值是 const 类型,也就是不能被修改,例如const char * getname()。函数头部的结尾加上...

Effective C++条款40【代码】

本节条款讲述了多重继承的使用 多重继承一般情况下用的很少,原因在于多重继承容易出现程序错误。以下去两个典型的调用错误: 第一种错误如下代码:#include<iostream>using namespace std;class B { public:virtualintm(){} };class C { public:virtualintm(){}; };class D :public B,private C { public:};int main() {D d;d.m();//编译不通过,因为m()调用不明确return0;} 如上代码,由于B类中有个m()函数,C类中也有个m()函...

我的C++学习笔记(第02天)

昨天,psv到手,玩的不可开交,于是没有更新,反正是周末休息休息一下啦...话不多说...go on...笔记:第02章 变量和数据类型2.1 常量  常量是在程序运行过程中不变的量,变量是则可发生变化的值."先声明,后使用"2.1.1 声明常量  * const常量(尽量使用)const <类型名> <变量名> = <表达式>;  * 宏常量    #define <宏名> <常量>    宏名可以是简单的字符名,也可以是带有参数的函数名;    常量可以是数值,字符串和函数...

[C++ Primer Plus] 第8章、函数探幽——(二)课后习题【代码】【图】

1.编写通常接受一个参数(字符串的地址),并打印该字符串的函数。然而,如果提供了第二个参数(int类型),且该参数不为0,则该函数打印字符串的次数将为该函数被调用的次数(注意,字符串的打印次数不等于第二个参数的值,而等于函数被调用的次数)。是的,这是一个非常可笑的函数,但它让读者能够使用本章介绍的一些技术。在一个简单的程序中使用该函数,以演示该函数是如何工作的。 1 #include <iostream>2usingnamespace std;...

C++的sting类使用

一:  string作为C++常用的一个类,得熟悉它的一些常用的方法。在使用这个类之前,得加上头文件  #include <string>  #include <stdexcept> //标准的异常类的库 二:  (1)获取string的元素个数方法,还有访问string中的每个元素的方法    void test01()    {       string str1="hello world!good bye";       int i;       cout<<"str1.size:"<<str1.size()<<endl;       cou...

mac ios的c++11支持的问题

CXXFLAGS += -std=c++11 -stdlib=libc++LDFLAGS += -lc++ 是谁写的LDFLAGS也要用-std=c++11的,害的我调试了几个小时,就为了定位这一个问题 题外话:自带的libstdc++还没有支持c++11,所以要用激进派的libc++原文:http://www.cnblogs.com/zjzazym/p/4304017.html