对于C++中push_back的原理介绍与分析

push_back 的原理

首先我们都清楚 push_back() 的作用是复制或移动的方式向容器尾部添加给定的元素。函数接口如下面两个形式。

复制代码
// T为类模板参数
void push_back(const T& value);
void push_back(T&& value);

这里有一段简单的代码,向一个 std::vector<std::string> 添加一个字符串。

复制代码
#include <string>
#include <vector>

int main() {
    std::vector<std::string> arr;
    arr.push_back("Hello World");
}

其中 arr.push_back("Hello World"); 的参数是一个字符串字面量。

而向一个 std::vector<std::string> 添加一个字符串字面量,会经过两个步骤:

  1. 通过字符串字面量构造出一个临时的字符串对象;
  2. 将临时对象匹配到 void push_back(T&& value); 并移动到数据尾部。

类似于这么一个形式:

复制代码
arr.push_back(std::string("Hello World"));    --->   void push_back(T&& value);
相关推荐
xieliyu.11 小时前
Java算法精讲:双指针(二)
java·开发语言·算法
苏宸啊12 小时前
IPC管道
linux·c++
何以解忧,唯有..12 小时前
Python包管理工具pip:从入门到精通
开发语言·python·pip
BestOrNothing_201512 小时前
ROS2 话题通信实战:消息对象、Publisher 发布器与 Subscriber 订阅器保姆级教程
c++·ros2·subscriber·publisher·话题通信
雪的季节12 小时前
RabbitMQ详解
开发语言
ice81303318113 小时前
【Python】Matplotlib折线图绘制
开发语言·python·matplotlib
三品吉他手会点灯13 小时前
C语言学习笔记 - 44.运算符和表达式 - 运算符2 - 除法与取余运算符
c语言·开发语言·笔记·算法
kkeeper~13 小时前
0基础C语言积跬步之动态内存管理
c语言·开发语言
橘右今13 小时前
2026 Java后端高频面试宝典
java·开发语言·面试
艾iYYY13 小时前
string 类的模拟实现
android·服务器·c语言·c++·算法