push_back()参数介绍
时间: 2023-06-13 17:07:01 浏览: 102
push_back() 是 C++ STL 中 vector 容器的成员函数,用于在 vector 的末尾添加一个元素。其参数可以是容器所存储数据类型的对象、引用或指针。具体使用说明如下:
语法:
```c++
void push_back (const value_type& val);
```
参数:
- val:要添加到 vector 末尾的元素。
其中,value_type 是 vector 存储的数据类型。
示例:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> v;
v.push_back(1); // 添加一个整数 1 到 vector 末尾
v.push_back(2); // 添加一个整数 2 到 vector 末尾
v.push_back(3); // 添加一个整数 3 到 vector 末尾
for (auto i: v) {
cout << i << " ";
}
// 输出:1 2 3
return 0;
}
```
在上面的示例中,我们使用 push_back() 将三个整数添加到 vector v 的末尾,并使用 for 循环遍历输出 vector 中的元素。
相关问题
emplace_back和push_back
emplace_back和push_back都是vector容器的成员函数,用于在容器的末尾添加元素。但是它们有一些不同之处。
push_back需要传入一个具体的元素,而emplace_back可以直接传入构造该元素所需的参数,然后容器会在内部自行构造元素。这意味着,如果添加的是一个较大的对象,使用emplace_back可以避免不必要的复制或移动操作,减少开销。同时,emplace_back也有更好的性能优化,因为它不需要调用复制构造函数或移动构造函数。
例如,假设存在一个名为Student的类,其构造函数需要传入一个string类型的学生姓名和一个int类型的学生年龄。如果想要向一个vector<Student>容器中添加一个学生,可以这样写:
```
std::vector<Student> students;
// push_back方式
Student s1("Tom", 18);
students.push_back(s1);
// emplace_back方式
students.emplace_back("Tom", 18);
```
可以看到,使用emplace_back的语法更加简洁。但是需要注意的是,由于emplace_back使用了变长模板实现,所以要保证传入的参数类型正确,并且构造函数的参数列表应该与传入的参数一一对应。
在总体上,emplace_back是更加灵活、性能更好的选择,但是如果只需要向容器中添加简单类型的元素,使用push_back就足够了。
c++ push_back
在C++中,push_back()是一个vector容器的成员函数,用于向容器的末尾添加一个元素。有两种形式的push_back()函数可以使用。引用和引用分别给出了这两种函数的声明。第一种形式的push_back()函数接受一个常量引用作为参数,将该参数的值复制到容器中。而第二种形式的push_back()函数接受一个右值引用作为参数,可以直接将参数的值移动到容器中,而不需要进行额外的复制操作。
例如,可以使用push_back()函数将一个整数值添加到一个int类型的vector容器中。引用给出了这个例子的代码。在这个例子中,vec.push_back(10)将整数值10添加到了vec容器的末尾。同样地,vec.push_back(num)也可以将变量num的值添加到vec容器中。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [C++ push方法与push_back方法 浅析](https://blog.csdn.net/u013630349/article/details/46853297)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [C++中push_back()函数](https://blog.csdn.net/snowcatvia/article/details/96716344)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]