C++标准库中map的简单使用示例

1、在STL中,map是一种关联式容器,包含键值对即元素为pair;
2、除此之后,map还是一种有序容器,这和Obj-C不一样,Obj-C中相对应的数据类型为Dictionay,这是一个无序容器;
3、与list、vector不一样的地方在于,map指定了键值对类型后,容器中元素是接收了键值对类型后的pair;
4、看下代码示例或许更直观一点:

1
2
3
4
5
6
7
8
9
#include 
#include 
 
using namespace std;
 
int main(){
    map map1;
    // 插入一个键值对,直接使用{}的方式
    map1.insert({1,[......]<p class="read-more"><a href="https://www.yusian.com/blog/cpp/2018/09/09/2052111251.html">继续阅读</a></p>

C++STL中list与vector在效率方面的比较

1、vector的数据结构类似数组,在内存中为一片连续的存储空间;
2、list的数据结构为链表,每个元素中都保存了下一个元素的地址,空间可以不连续;
3、基于两者数据结构的特点,vector的随机访问速度快,list的增删操作快;
4、以1亿个元素的分别以list与vector的方式存储来比较两者的速度;

1
2
3
4
5
6
7
8
9
10
#include 
#include 
#include 
using namespace std;
 
int main(){
    struct Node{
        int m_a;
        int m_b;
    };[......]<p class="read-more"><a href="https://www.yusian.com/blog/cpp/2018/09/09/1035231248.html">继续阅读</a></p>

STL中三大组件(容器+迭代器+算法)的最简单组合使用

1、STL全称为Standard Template Library,标准模板库,C++开发中最为常用的标准库;
2、STL有点类似于ObjC中的Foundation库,语言之间的类比有助理解,融汇贯通;
3、STL中最重要的三大组件为容器、迭代器、算法;
4、迭代器为容器与算法之间的桥梁;
5、通过一段最简单的代码来解释三者之间的协作关系;

1
2
3
4
5
6
7
8
9
#include 
#include 
using namespace std;
 
int main(){
    // 1、容器
    string str("ABCDEFG");
    // 2、迭代器
    strin[......]<p class="read-more"><a href="https://www.yusian.com/blog/cpp/2018/09/07/2258391246.html">继续阅读</a></p>

C++中string迭代器与reserve函数的冲突

1、迭代器做为容器与算法之间的桥梁方便了各种场景与功能的实现;
2、string类的迭代器相当于char*的指针;
3、string在被初始化或赋值后系统会分配一定大小的容量(mac下默认为22,超出后15+16*n);
4、string可通过capacity查看当前容量大小;
5、string可通过reserve()方法来修改容量大小(只能改大,改小则保持当前容量不变);
6、如果调用reserve方法成功修改容量大小后,再使用原来的迭代器来访问内容,会出现异常;
7、代码示例:

1
2
3
4
#include 
using namespace std;
 
int main(){[......]<p class="read-more"><a href="https://www.yusian.com/blog/cpp/2018/09/07/2221111243.html">继续阅读</a></p>

C++类中重载输出运算符<<

1、在C++中方法重载是一个重要的特性,运算符同样也是可以重载的;
2、自定义类,正常情况下是不能直接使用输出运算符的,如(cout << xxx;);
3、我们需要使用cout打印输出类的信息,该怎么cout呢?(类似objC中重写对象的description方法);
4、cout中的<<运算符实际上也是一个函数,参数为ostream与当前类的引用,返回ostream的引用;
5、看代码就明白了

1
2
3
4
5
6
#include 
using namespace std;
 
class Student{
public:
    string  m_name;[......]<p class="read-more"><a href="https://www.yusian.com/blog/cpp/2018/09/07/1535231240.html">继续阅读</a></p>