![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
林杪
小舟从此逝 江海寄余生
展开
-
C++中vector的size和capacity,空和非空的理解
C++Primer P340当某vector对象为空容器时,不能对其进行拷贝、赋值、访问以及一些相关的写操作(如fill_n,copy等函数)。所谓容器为空,与其容量(即内存空间capacity,可存储元素的最大数量)无关,只跟其大小(size,已经存储的元素数量)有关。当对一个空容器执行resize()操作后,其size变成指定值,capacity也会变为那个值,容器非空;而若对空容器执行rev...原创 2018-03-06 19:45:35 · 3118 阅读 · 0 评论 -
关于map容器的使用
虽然families中的每个元素是pair类型,但是当你用关键字进行访问时可以直接对值进行操作。只有当你不是用关键字去访问map容器中的元素,比如范围for语句中遍历families中的元素,此时得到的就是pair类型的对象,必须使用first和second。即:解引用map的迭代器所得到的类型和对map进行关键字访问得到的类型是不同的,这是与vector的区别。...原创 2018-03-12 15:25:54 · 511 阅读 · 0 评论 -
C++中的拷贝、赋值和销毁
几个重要的概念:拷贝构造函数、拷贝赋值运算符;拷贝初始化、直接初始化如图,出现了两次“拷贝构造函数”。直接调用构造函数(包括拷贝构造函数)来初始化对象的都是直接初始化。用赋值运算符、函数的传值调用、函数返回非引用对象、用花括号列表进行初始化以及标准库容器的insert和push_back都是拷贝初始化。拷贝初始化通常使用拷贝构造函数来完成。...原创 2018-03-21 16:49:10 · 294 阅读 · 0 评论 -
C++Primer5th 文本查询程序再探
#include "stdafx.h"#include<iostream>#include<string>#include<vector>#include<memory>#include<algorithm>#include<fstream>#include<map>#inclu原创 2018-04-13 19:51:01 · 634 阅读 · 0 评论 -
Effective C++:尽量用pass-by-reference替换pass-by-value;必须返回对象时,不要妄想返回其引用
Q:在编写类的成员函数时,比如重载一些运算符,时常会发现形参和返回类型在可以直接传值/返回对象的情况下却选择了引用的形式,而有时候则不如此,因而有些困惑。A:首先,大前提下,要尽可能用引用的形式代替函数中的传值/返回对象。因为在传值和返回对象的过程中,实际上进入函数的是实参的一个拷贝,而返回的也是一个拷贝。在创建这个拷贝的过程中会调用相应对象的拷贝构造函数,而之后还要调用其析构函数,这样一...原创 2018-09-19 20:34:22 · 291 阅读 · 0 评论