浅谈C++类(3)--两个特殊成员mutable与static成员
这一次讲我一直没有怎么搞明白的两个特殊类成员,mutable,static。 接着第(1)次的内容,从水果讲起。我们希望有一个成员总是可以被修改,即mutable。哪怕他是const成员函数都可以修改,这种需要感觉还是比较少有。不过我们可以看看例子。
这一次讲我一直没有怎么搞明白的两个特殊类成员,mutable,static。 接着第(1)次的内容,从水果讲起。我们希望有一个成员总是可以被修改,即mutable。哪怕他是const成员函数都可以修改,这种需要感觉还是比较少有。不过我们可以看看例子。
上一次讲了一些基本的概念,这次分析一个稍微复杂但其实还是很简单的例子。现看定义:
类多么重要我就不多说了,只讲讲学习,因为个人认为类的学习无论从概念的理解还是实际代码的编写相对其他C兼容向的代码都是比较有难度的, 对于以前学C 的人来说这才是真正的新概念和内容,STL其实还比较好理解,不就是一个更大的函数库和代码可以使用嘛。虽然vector,string就是类,不过我们却不需要这样去理解他们,就可以很好的使用了。
先说明,1,这是非常初级的东西。2,你懂了就不需要看了。3,我写出来是帮助还不懂得人。4,我自己也还不太懂,所以才写下来,梳理一下,希望自己能更好的理解,因为我相信一句话,很好的理解一个东西的好方法是把这个东西教给别人。有什么不对的地方,欢迎指出,我非常感谢,还有很多时候,某种方法是不允许的,了解也很重要,但我不想给出错误的例子,那样很容易给出误导,只讲这样是错误的,希望你可以自己输入去尝试一下,看看得出的是什么错误。
C++ Primer中这样描述reverse 反向排列元素
一个容器为 9,8,7,6,5,4,3,2,1,0,sort后为0,1,2,3,4,5,6,7,8,9。
一个容器为0,1,2,3,4,5,6,7,8,9,sort后还为0,1,2,3,4,5,6,7,8,9。
假设一个容器为0,1,2,3,4,5,6,7,8,9你认为reverse以后为什么呢?没有错,9,8,7,6,5,4,3,2,1,0。
但是一个容器本来就为 9,8,7,6,5,4,3,2,1,0呢?还是9,8,7,6,5,4,3,2,1,0吗?他们不是本来就降序排列了吗?
我以前就是这样理解的,不过实际使用才知道reverse不时排序算法,仅仅是反向排列。9,8,7,6,5,4,3,2,1,0
reverse后变成0,1,2,3,4,5,6,7,8,9。要得到降序排列的方法,好像可以先sort,后reverse.不知道我说的对不对。
具体的验证代码就很简单,不列出来了。
本文通过代码示例说明,C++的std::merge算法要求输入序列必须先排好序,才能正确合并成有序序列。
在学习C++标准库的过程中,各种容器是很大一块,每次验证自己的结果输出容器的时候除了string 可以简单的cout«输出以外,其他的都要for()循环用迭代器遍历,比如输出vector
C++学习笔记,演示了创建pair的多种方法,如直接赋值和make_pair,并将其存入vector进行遍历输出。