菜鸟笔记
提升您的技术认知

C++ 笔记 第36页

delete []是如何得知数组个数的

通常在delete[]一个数组时,编译器要按顺序作如下两件事情:   1. 对每个数组元素调用析构函数   2. 释放对象数组所占内存  注意这是彼此独立的两步.  在第2步.编译器只需简单地把数组首...

赞(1)菜鸟菜鸟阅读(3115)

C+++string类如何判断字符串为空

string类是C++STL类之一,有很丰富的接口,判断string为空是经常用到的操作。 string类为空,实际也就是元素为0个。 可以按照如下方式判断: 1、string类有自己的成员函数empty, 可以用来判断是否为空: stri...

赞(1)菜鸟菜鸟阅读(7279)

C++ std::to_string

考虑经常用的转字符串的方法: std::stringstream ss; ss << 1.23; std::string aaa = ss.str(); 现在有个更简洁的: std::string aaa = std::to_s...

赞(1)菜鸟菜鸟阅读(4399)

指针函数和函数指针

概述 指针函数和函数指针是C语言里两个比较绕的概念。但是不仅面试题爱考,实际应用中也比较广泛。很多人因为搞不清这两个概念,干脆就避而远之,我刚接触C语言的时候对这两个概念也比较模糊,特别是当指针函数、函数指针、函数指针变量、函数指针数组放在...

赞(1)菜鸟菜鸟阅读(2355)

构造函数、析构函数和虚函数的关系

首先明确两点 构造函数不可能定义为虚函数 虚函数的目的是通过父类引用或者指针调用子类的成员函数。而构造函数的目的是创建对象。创建子类对象时,将调用子类的构造函数,而不是父类的构造函数。子类的构造函数将使用父类的一个构造函数。这种顺序不同于继...

赞(1)菜鸟菜鸟阅读(2340)

自己动手实现list容器

1. 序:    本文参考了侯捷的 《STL 源码分析》一书,出于兴趣,自行实现了简单的 list 容器。    学习了 STL 的 list 容器的源代码,确实能够提高写链表代码的能力。其中的 sort 函数,可谓是非常神奇。。。 2. ...

赞(1)菜鸟菜鸟阅读(2794)

自己动手实现vector容器

本文参考了侯捷的 《STL 源码分析》一书,出于兴趣,自行实现了简单的 vector 容器。 之后会陆续上传 list, deque 等容器的代码,若有错误,欢迎留言指出。 vector 容易实现的几点注意事项: 1. 由于vector 是...

赞(1)菜鸟菜鸟阅读(3442)

智能指针和移动语义

intro to smart pointer and move semantics 1. 裸指针导致的内存泄漏问题 考虑下面这个函数,在这个函数中我们动态申请了一片内存。 void someFunction() { Resource *pt...

赞(1)菜鸟菜鸟阅读(2221)

右值引用

右值引用 1. 什么是右值引用 右值引用是C++11新加的一种引用类型,是一种仅能绑定到右值上的引用。不同于左值引用仅用一个&表示,右值引用用两个&&表示。 int x{ 5 }; int& lref{ x ...

赞(1)菜鸟菜鸟阅读(3268)

如何正确删除vector中的元素

0. 删除vector中的指定元素 今天来探讨C++中的一个基础问题。如何正确地删除vector中符合条件的某元素。比如,有一个vector nums = {1, 2, 2, 2, 2, 3, 5},要求删除nums中所有值为2的元素。C+...

赞(1)菜鸟菜鸟阅读(8443)