C++(push_back)

发布时间 2023-12-14 17:54:19作者: 做梦当财神

在 C++ 中,push_back 是用于在容器的末尾添加一个元素的成员函数。这个函数通常用于向动态数组(比如 std::vector)或类似的容器中添加新的元素。

语法:

void push_back(const T& value);
  • value:要添加到容器末尾的元素。

示例:

#include <iostream>
#include <vector>

int main() {
    // 创建一个空的 vector
    std::vector<int> myVector;

    // 使用 push_back 添加元素
    myVector.push_back(1);
    myVector.push_back(2);
    myVector.push_back(3);

    // 打印 vector 中的元素
    for (int i : myVector) {
        std::cout << i << " ";
    }

    return 0;
}

在上述示例中,push_back 被用于向 std::vector 中添加整数元素。myVector 最初是一个空的 vector,通过三次调用 push_back,分别将元素 1、2 和 3 添加到了 vector 的末尾。最后,通过循环遍历并输出 vector 的元素。

注意事项:

  1. 动态扩展push_back 不仅添加元素,还会根据需要动态扩展容器的大小,确保足够的空间来存储新的元素。
  2. 对于不同容器:虽然 push_backstd::vector 的成员函数,但类似的函数也存在于其他容器,如 std::liststd::deque 等。
  3. 引用和移动语义:C++11 引入了右值引用和移动语义,对于大对象的添加,可以使用 std::move 来减少拷贝操作。
#include <iostream>
#include <vector>

int main() {
    std::vector<std::string> myVector;

    std::string str1 = "Hello";
    std::string str2 = "World";

    // 使用移动语义
    myVector.push_back(std::move(str1));
    myVector.push_back(std::move(str2));

    // 此时 str1 和 str2 的状态不确定,可能为空,不要再使用它们

    return 0;
}

在上述示例中,std::move 用于将字符串的所有权从 str1str2 转移到 vector 中。这可以提高性能,因为避免了不必要的拷贝操作。