vector类里insert函数的一点问题
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 01:14:10
vector类里insert函数的一点问题
比如一个vector类vec的大小为5,里面的元素全为1.然后一条语句 vec.insert(vec.end(),10),然后vec这个类里的元素个数就变为了6,10在元素的最后一位.这个我没问题,因为end()函数是返回最后一个元素的下一个元素.但是如果写这样一条语句 vec.insert(vec.begin(),20) ,根据结果,元素个数变为7,然后20会出现在第一个.而begin()函数明明是返回第一个元素,那么这个类的大小为什么会变大一个呢?我就理解不了?
比如一个vector类vec的大小为5,里面的元素全为1.然后一条语句 vec.insert(vec.end(),10),然后vec这个类里的元素个数就变为了6,10在元素的最后一位.这个我没问题,因为end()函数是返回最后一个元素的下一个元素.但是如果写这样一条语句 vec.insert(vec.begin(),20) ,根据结果,元素个数变为7,然后20会出现在第一个.而begin()函数明明是返回第一个元素,那么这个类的大小为什么会变大一个呢?我就理解不了?
那是因为vector的insert的函数原型是iterator insert (iterator position, const value_type& val);实际效果是把val插入在position指向的元素的前面
因为vec.end();返回的是最后一个元素的下一个位置,
所以vec.insert(vec.end(),10);实际上是在“最后一个元素的下一个位置的前面插入10”,所以等价于在vec的最后插入10
vec.begin();返回第一个元素的位置,
所以vec.insert(vec.begin(),20);实际上是“在第一个元素的前面插入20”,等价于在vec的最前面插入20
因为vec.end();返回的是最后一个元素的下一个位置,
所以vec.insert(vec.end(),10);实际上是在“最后一个元素的下一个位置的前面插入10”,所以等价于在vec的最后插入10
vec.begin();返回第一个元素的位置,
所以vec.insert(vec.begin(),20);实际上是“在第一个元素的前面插入20”,等价于在vec的最前面插入20
linearized pUC18 vector and DNA insert.
mysql 有关 insert into set的问题
关于C++中vector< vector >的含义.
Insert
ArrayList和Vector的区别
vector的iterator为vector::iterator,那vector*的iterator是什么,
我的打印机出现‘’Manual feed insert paper",好像是什么纸盒的设置有问题吧!
输入您的问题To use the machine,first insert the correct coins,then
sql中 insert 和 insert into 的区别
select Insert into和Insert into select的区别
键盘上的insert是什么意思?
matlab里legend函数的使用问题