C++ md
Sidney.Tan
永远保持一颗追求兴趣、探索未知的心
展开
-
#pragma once与#ifndef的用法和区别
#pragma once用法总结1.#pragmaonce这个宏有什么作用?为了避免同一个头文件被包含(include)多次,C/C++中有两种宏实现方式:一种是#ifndef方式;另一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别。但两者仍然有一些细微的区别。2.两者的使用方式有何区别?示例代码如下:方式一:#ifndef SOMEFILE_H#define SOMEFILE_H… … // 声明、定义语句#endif方式二:#prag转载 2021-04-08 21:01:22 · 487 阅读 · 0 评论 -
push_back与emplace_back的区别
emplace_back是C++ 11的新特性,因为引入了右值引用,所以多了这个特性,以前都是用push_back。他们的区别如下:如果要将一个临时变量push到容器的末尾,push_back()需要先构造临时对象,再将这个对象拷贝到容器的末尾,而emplace_back()则直接在容器的末尾构造对象,这样就省去了拷贝的过程。代码如下#include <iostream>#include <cstring>#include <vector>using nam原创 2021-01-17 22:04:54 · 651 阅读 · 0 评论 -
#ifndef, #define, #endif等编译预处理的使用
这些都是编译预处理命令,其中,#ifndef, #define, #endif常常在一起使用,他们的用法和原理如下。1 用法#ifndef <标识> //若未定义这个宏,则执行下面的代码#define <标识> //定义这个宏............#endif<标识>在理论上来说可以是自由命名的,但每个头文件的这个“标识”都应该是唯一的。标识的命名规则一般是头文件名全大写,前后加下划线,并把文件名中的“.”也变成下划线,如:stdio.h#ifndef原创 2021-01-03 21:51:31 · 329 阅读 · 0 评论 -
C++中erase函数的三种用法
C++中erase函数的三种用法(1)string& erase ( size_t pos = 0, size_t n = npos );功能是:删除容器中从pos位置开始的n个元素。返回值是经过删除操作后的容器。第一种erase用法是string容器所特有的,vectro和list等容器没有这种用法。(2)iterator erase ( iterator position );功能是:删除容器中position所指位置的元素。返回值是指向被删元素之后的那个元素(即下一个元素)的原创 2021-01-02 20:43:19 · 15011 阅读 · 0 评论