![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++学习
文章平均质量分 74
埋没了的承诺
这个作者很懒,什么都没留下…
展开
-
学习C++——参数传递
参数传递1、传值参数(实参初始化形参)普通形参(int,char.....)指针形参(int * ,char *.....)2、传引用参数(引用是实参的别名)使用引用避免拷贝(尤其是比较大的类或者是容器对象)当不需要修改对象时,将其声明为常量引用。 bool isShorter(const string &str1, const string &str2原创 2015-01-26 22:14:31 · 501 阅读 · 0 评论 -
学习C++——lambda表达式
C++ languageC++11 - the new ISO C++ standardThe C++ Standards Committee - ISOCPP上面三个是C++学习网站,有助于了解C++11的新特性。lamdba表示式(C++11)1、介绍lamdba我们使用过的仅有两种可调用对象是函数和函数指针。还有其他两种可调用对象:重载了函数调用运算符的类,以及l原创 2015-02-04 14:22:53 · 656 阅读 · 1 评论 -
学习C++——关联容器
关联容器(associative container)是对容器概念的另一种改进。关联容器将值与键关联在一起,并使用键来查找值。例如:值可以是表示雇员的信息(姓名,地址,电话等)的结构,而键可以是唯一的员工编号。为获取雇员信息,程序将使用键查找雇员结构。对于容器X,表达式X::value_type通常指出了存储在容器中的值的类型。对于关联容器X,表达式X::key_type指出了键的类原创 2015-02-06 18:58:39 · 321 阅读 · 0 评论 -
史上最全设计模式导学目录(完整版)
转载自:http://blog.csdn.net/lovelion/article/details/175172132012年-2013年,Sunny在CSDN技术博客中陆续发表了100多篇与设计模式学习相关的文章,涵盖了七个面向对象设计原则和24个设计模式(23个GoF设计模式 + 简单工厂模式),为了方便大家学习,现将所有文章的链接进行了整理,希望能给各位带来帮助!转载 2015-07-12 10:13:57 · 254 阅读 · 0 评论 -
C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别
1.C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域。从作用域看:1>全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量。2>静态局部变量具有局部作用域转载 2015-07-05 10:36:34 · 250 阅读 · 0 评论 -
史上最全的程序员求职渠道总结
http://blog.csdn.net/foruok/article/details/46798495我前前后后写过多篇与程序员找工作相关的文章,比如程序员跳槽神级攻略,找工作的辟邪剑谱,任性,春节前辞职,程序员该不该考虑初创公司,这些文章都收录在我的漫谈程序员专栏里,它们从跳槽时机、跳槽原因、简历优化等不同侧面讨论了程序员找工作的那些事儿,受到很多人的关注。今天呢,我准备专门分析一转载 2015-07-13 20:28:22 · 545 阅读 · 0 评论 -
第十章:对象和类
对象和类过程性编程和面向对象编程类的概念如何定义和实现类公有类访问和私有类访问类的数据成员类方法(类函数成员)创建和使用类对象类的构造和析构函数const成员函数this指针创建对象数组类作用域抽象数据类型面向对象的主要特性:抽象封装和数据隐藏多态继承代码的可重用性过程性编程和面向对象编程过程性编程:首先考虑要遵循的步骤,然后考虑要使用的数据。面向对象编原创 2015-07-14 20:03:05 · 319 阅读 · 0 评论 -
第十二章:默认复制构造函数和赋值运算符
默认复制函数1、当把初始化一个对象的时候,用另一个已经存在的对象赋值。比如String str2 = str1;其中str2为已经生成的对象。这个时候,编译器会把str1中的成员按值赋给str2中的每个成员。如果对象成员中没有使用new来分配动态内存空间,则编译器自动生成的默认赋值函数,就可以正确实现,而不会出现错误。但是如果对象成员中有new分配的动态内存空间,比如下面的这个类,原创 2015-07-16 20:55:54 · 653 阅读 · 0 评论 -
第十一章:运算符重载,友元函数,重载<<运算符,类的自动转换和强制类型转换
运算符重载1、什么是运算符重载运算符重载也就是同一个运算符在不同的运算表达式中表示的含义不一样,也就是实现的功能不一样。比如:2*3 = 6,*号实现的功能是将两个整数相乘。int num; int *pnum = #此时的*号是用来定义一个指向num的指针变量。这个时候*就是实现了运算符重载。比如:True && False,&号是将两个变量相与。int *pnum =原创 2015-07-16 21:34:20 · 806 阅读 · 0 评论 -
C++中typename实例
#include template class X{ typename T::id i;public: void f() { i.g(); }};class Y{public: class id { public: void g() { std::cout << "id.g()\n"; } };};int main(){ Y y; X原创 2015-10-06 11:12:44 · 287 阅读 · 0 评论 -
C++模板函数
#include #include void printstring(const std::string & str){ std::cout << str << std::endl;}template void print(const T & var){ std::cout << var << std::endl;}int main(){ std::string str原创 2015-10-06 11:34:36 · 380 阅读 · 0 评论 -
C++类模板实例
#include class A{ int j;public: A(int x) :j(x) {} A(A *x) { j = x->j; } void operator!() { std::cout << "J = " << j << std::endl; }};templateclass B{ int i; T * x;public: B(int xa, T原创 2015-10-06 20:36:49 · 428 阅读 · 0 评论 -
RAII惯用法:C++资源管理的利器
RAII是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。虽然从某种程度上说这个名称并没有体现出该惯性法的本质精神,但是作为标准C++资源管理的关键技术,RAII早已在C++社群中深入人心。我记得第一次学到RAII惯用法是在Bjarne Stroustrup的转载 2015-10-21 21:13:43 · 310 阅读 · 0 评论 -
转【STL学习】堆相关算法详解与C++编程实现(Heap)
http://blog.csdn.net/xiajun07061225/article/details/8553808堆简介堆并不是STL的组件,但是经常充当着底层实现结构。比如优先级队列(Priority Queue)等等。堆是一种完全二叉树,因此我们可以用数组来存储所有节点。在这里的实现中,采用了一个技巧:将数组中索引为0的元素保留,设置为极大值或者为极小值原创 2015-10-15 12:46:43 · 823 阅读 · 0 评论 -
特定的循环操作for_each
#include #include #include using namespace std;templateclass MultValue{private: Type factor;public: MultValue(const Type & value):factor(value){} void operator() (Type & elem)const { elem原创 2015-10-15 09:16:58 · 395 阅读 · 0 评论 -
你敢说自己懂 C 语言么?
http://netsmell.com/post/you-know-c-programming-languauge.html这篇文章的目的是让每个程序员(特别是 C 程序员)说:我真的不懂 C。我想要让大家看到 C 语言的那些阴暗角落比我们想象中更近,甚至那些平常的代码中就包含着未定义的行为。这篇文章设置了一系列的问题和答案。所有的例子都是从源代码中单独分离出来的。1.转载 2015-10-30 20:15:34 · 362 阅读 · 0 评论 -
学习C++——顺序容器(2)
3、顺序容器操作3.1、向顺序容器添加元素除了array外,所有的标准库容器都提供了灵活的内存管理。在运行时可以动态添加或删除元素来改变容器的大小。使用push_backpush_back将一个元素追加到一个vector的尾部。除array和forward_list之外,每个顺序容器(list,vector,deque,string)都支持push_back. st原创 2015-01-31 21:48:33 · 339 阅读 · 0 评论 -
学习C++——容器适配器
容器适配器标准库定义了三个顺序容器适配器:stack, queue和 priority_queue。适配器(adaptor)是标准库中的一个通用的概念。容器、迭代器和函数都有适配器。一个适配器是一种机制,能使某种事物的行为看起来像另一种事物一样。一个容器适配器接受一种已有的容器类型,并使其行为看起来像是一种不同的类型。例如:stack适配器接受一个顺序容器(除array或forew原创 2015-02-04 20:50:19 · 455 阅读 · 0 评论 -
学习C++——返回类型
1、无返回值函数没有返回值的return 语句只能用在返回类型为void的函数中。返回类型为void的函数,不要求一定有return语句,因为这类函数的最后会自动隐式地执行return。2、有返回值函数只要函数的返回类型不是void,函数中的return语句必须返回一个值,返回类型相同或可以隐式地转换。值是如何被返回的返回的值用于初始化调用点的一个临时量,该临时量是原创 2015-01-27 19:41:32 · 2093 阅读 · 0 评论 -
学习C++——函数指针
函数指针指向的是函数而不是对象。bool length(const string &, const string &);如果要声明一个指向该函数的指针,只需要将指针替换函数名。bool (*pf)(const string &, const string &);如果没有*f两边():bool *pf(const string &, const string &);声明了一个名为pf的函原创 2015-01-27 22:30:49 · 318 阅读 · 0 评论 -
学习C++——const的用法
const的常见用法总结原创 2015-01-11 15:14:15 · 461 阅读 · 0 评论 -
学习C++——入门
一、例1#include int main(){ using namespace std;//using指令使得,std名称空间中的所有名称都可用 cout 输出信息,此时的cout相当于是std::cout cout 输出换行符,此时的endl相当于是std::endl cout << "What is your name ?" << endl; cin.get();//如原创 2015-01-10 09:49:03 · 289 阅读 · 0 评论 -
学习C++——复合类型
一、数组声明数组的通用格式:数据类型 数组名字[数组元素个数]; 数组初始化:int cat[4] = {1,2,3,4};这种方式只能在声明数组的时候进行初始化赋值。这样也行,int cat[] = {1,2,3,4}; C++标准模板库(STL)提供了一种数组的替代品——模板类vector,而C++11新增了模板类array。二、字符串原创 2015-01-10 12:19:45 · 597 阅读 · 0 评论 -
学习C++——实现抽象数据类型——栈
创建栈空间将数据项添加到栈顶从栈顶弹出数据项查看栈是否填满查看栈是否为空原创 2015-01-11 22:00:18 · 429 阅读 · 0 评论 -
学习C++——文本的输入cin
for、while、do while循环语句另外还有if和switch选择语句。另外重点是cin是如何处理字符输入的。一、字符串的比较1、C-风格的字符串的比较strcmp(word,"book");需要包含头文件;当word大于"book"时,结果大于0;2、string类字符串的比较str1 > str2; str1 str1 == str2; 直接用关系符来比较,st原创 2015-01-11 09:38:38 · 676 阅读 · 0 评论 -
学习C++——构造函数和析构函数
构造函数和析构函数的用法总结。原创 2015-01-11 20:03:41 · 329 阅读 · 0 评论 -
学习C++——顺序容器(1)
1、顺序容器概述以下表格列出了标准库中的顺序容器,所有的顺序容器都提供了快速顺序访问元素的能力。顺序容器类型vector可变大小数组。支持快速随机访问。元素是连续存储。deque双端队列。支持快速随机访问。在头尾位置插入、删除速度很快。list双向链表。支持双向顺序访问。在任何位置插入、删除速度都很快。forward_li原创 2015-01-31 15:33:05 · 617 阅读 · 0 评论 -
学习C++——有关返回对象的总结
有关函数返回对象类型的总结。当成员函数或独立的函数返回对象的时候,有几种返回方式可以选择。原创 2015-01-13 19:25:52 · 378 阅读 · 0 评论 -
学习C++——类的自动转换和强制类型转换
本程序主要的用法是: 1、类型转换函数的定义以及使用。 (double类型赋值给对象类型,此时构造函数可以实现; 对象类型赋值给double类型,此时用转换函数来实现。) 2、成员函数实现加法的重载。 3、友元函数实现加法的重载。原创 2015-01-13 11:22:53 · 717 阅读 · 0 评论 -
学习C++——运算符重载
运算符重载的方法以及如何定义,友元函数,重载输出原创 2015-01-12 09:10:48 · 358 阅读 · 0 评论 -
学习C++——几个特殊的成员函数
默认构造函数,默认复制构造函数,重载赋值运算符函数介绍,以及它们出现的问题和解决方法原创 2015-01-13 14:28:54 · 374 阅读 · 0 评论 -
学习C++——泛型算法
1、概述标准库定义了一组泛型算法,它们实现了一些经典算法的公共接口,还可以适用于不同类型的元素和多种容器类型。大部分算法定义在头文件 algorithm中。标准库还在头文件numeric中定义了一组数值泛型算法。下面的例子是调用标准库算法find,来实现查找操作:#include #include #include int main(){ using namespace原创 2015-02-03 16:28:38 · 371 阅读 · 0 评论