vector中push_back函数的意思是啥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vector中push_back函数的意思是啥相关的知识,希望对你有一定的参考价值。
参考技术Avector中push_back函数的意思是在vector的末尾插入一个元素。
vector简单理解为动态一维数组push_back
作用是在这个一维数组尾部插入一个元素 vector<int> v
v.push_back(1); //v里面是1
v.push_back(2); //v里面是1 , 2
v.push_back(3); //v里面是1 , 2 , 3。
扩展资料:
push_back是编程语言里面的一个函数名。
函数原型
void push_back(value _type _Ch);
参数
_Ch --> The character to be added to the end of the string.
在vector类中:
void push_back(const _Ty &_X)
insert(end(), _X);
在vector<_Bool, _Bool_allocator>类中:
void push_back(const bool _X)
insert(end(), _X);
参考资料来源:百度百科-push_back
push_back与构造函数
vector在push_back时,如果是自定义的数据结构,它会调用这个结果的拷贝构造函数来初始化vector中的存储空间,如果需要用push_back()需要自己实现拷贝构造函数!具体vector中是怎么push_back可以查看stl源码剖析中的具体实现。
如果注释掉test的拷贝构造函数,push_back不会调用无参构造函数,但是能够初始化,并且a的值还为10,不知道为什么。
1 #pragma execution_character_set("utf-8") 2 #include <iostream> 3 #include <time.h> 4 #include <Windows.h> 5 #include <QDebug> 6 #include <vector> 7 using namespace std; 8 struct test{ 9 int a; 10 test() 11 { 12 qDebug()<<"调用构造函数"<<endl; 13 a = 10; 14 } 15 test(const test& right) 16 { 17 qDebug()<<"调用拷贝构造函数"<<endl; 18 a = right.a; 19 } 20 test& operator=(const test& right) 21 { 22 qDebug()<<"调用赋值运算符"<<endl; 23 a = right.a; 24 return *this; 25 } 26 }; 27 28 int main(int argc, char *argv[]) 29 { 30 vector<test> testArray; 31 test test1; 32 testArray.push_back(test1); 33 qDebug()<<testArray[0].a<<endl; 34 }
以上是关于vector中push_back函数的意思是啥的主要内容,如果未能解决你的问题,请参考以下文章