C++ pushback

算法中里面的一个函数名,如c++中的vector头文件里面就有这个push_back函数,在vector类中作用为在vector尾部加入一个数据。
string中也有这个函数,作用是字符串之后插入一个字符。
如果是指标准模板库(stl)中容器的一般pushback()操作函数,那么是指在容器尾端插入一项数据,比如
vector a(10);
a.pushback(10);
那么a的尾端,同时也是唯一一个数据a[0]就会为设置为10。

函数原型
1
voidpush_back(value_type_Ch);
参数
1
_Ch–>Thecharactertobeaddedtotheendofthestring.
在vector类中:
1
2
3
4
voidpush_back(const_Ty&_X)
{
insert(end(),_X);
}
在vector<_Bool, _Bool_allocator>类中:
1
2
3
4
voidpush_back(constbool_X)
{
insert(end(),_X);
}

举例:
//basic_string_push_back.cpp
//compilewith:/EHsc
#include
#include
int main()
{
using namespace std;
string str1(“abc”);
basic_string::iteratorstr_Iter,str1_Iter;
cout<<“The original string str1 is:”;
for(str_Iter=str1.begin();str_Iter!=str1.end();str_Iter++)
cout<<*str_Iter;
cout<<endl;
str1.push_back(‘d’);
str1_Iter = str1.end();
str1_Iter–;
cout<<“The last char acter-letter of the modified str1 is now:”
<<*str1_Iter<<endl;
cout<<“The modified string str1 is:”;
for(str_Iter=str1.begin();str_Iter!=str1.end();str_Iter++)
cout<<*str_Iter;
cout<<endl;
}

输出结果将是在abc的最后一个元素c后面增加一个元素d:abcd

作者:Coding懒懒
来源:CSDN
原文:https://blog.csdn.net/sjpz0124/article/details/45191095
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
c++中,vector是一个存储任意类型对象的动态数组容器,emplace_back和push_back都是vector类的成员函数,用于向vector容器中添加元素。它们的区别在于如何添加元素。 push_back方法可以接收一个元素作为参数,将该元素添加到vector容器的末尾。例如: ``` std::vector<int> v; v.push_back(3); ``` 上述代码将数字3添加到了vector v的末尾。如果添加的元素是一个类对象或结构体,那么push_back方法将调用相应的复制构造函数或移动构造函数。下面的代码演示了添加一个自定义类实例的操作: ``` class MyClass { public: MyClass() { std::cout << "Default constructor\n"; } MyClass(const MyClass& x) { std::cout << "Copy constructor\n"; } }; std::vector<MyClass> v; MyClass obj; v.push_back(obj); ``` 以上代码的输出结果是: ``` Default constructor Copy constructor ``` 可以看到,push_back方法调用了MyClass类的复制构造函数。 而emplace_back方法则更加灵活,它不仅可以接受一个元素作为参数,还可以接受多个参数,用来构造新创建的元素。例如: ``` std::vector<std::string> v; v.emplace_back("hello", 5); ``` 上述代码创建了一个std::string类型的对象,该对象的值是"hello",长度是5,然后将该对象添加到vector v的末尾。如果添加的元素是自定义类的实例,那么emplace_back方法将调用相应的构造函数,而不是复制构造函数或移动构造函数。 因此,总的来说,emplace_back方法比push_back方法更高效。因为使用emplace_back时,不需要创建一个临时对象,也不需要将对象复制或移动到vector容器中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值