c++ vector函数返回
终极管理员 知识笔记 122阅读
为什么 c++ 函数可以返回 vector 局部变量?

答:为什么 C++ 函数可以 返回Vector 局部变量? C++ 语言中,所有new和malloc创建的变量均存放在堆区,这已经是一个共识。 但是鲜为人知的是,STL库中的容器虽没有经过这两个关键字创建,但同样是存放在堆区。 这与动态数组性质相同。 如果从汇编角度观察便会发现,容器均调用了alloca tor 来创建。 这里便不展开多言。
如何将 vector作为返回值?

答:但是当数据量很大的时候使用 vector 效率就比较低了,还有千万别 返回 引用(局部对象的),因为 函数 执行完毕后,会释放局部对象的内存。 一般要将 vector作为返回值 的话,我们可以这样来实现,我们将它放入 函数 参数中,添加引用, 作为 保存数据的容器。
vector作为函数返回类型是什么?

答:vector作为函数返回类型. 在实际的操作中,我们经常会碰到需要返回一序列字符串或者一列数字的时候,以前会用到数组来保存这列的字符串或者数字,现在我们可以用vector来保存这些数据。. 但是当数据量很大的时候使用vector效率就比较低了,还有千万别返回引用(局部对象的),因为函数执行完毕后,会释放局部对象的内存。. 一般要将vector作为返回值的话,我们可以这样来实现,我们将它放入函数参数中,添加引用,作为保存数据的容器。. 例子:.
vector可以在函数体内声明后返回吗?

答:vector可以像普通变量那样在函数体内声明后返回:返回的是临时对象 只能复制 不能返回他的引用和迭代器. 如果vector 里存的不是基本类型, 而是自定义类型的话,最好重写这个类的拷贝构造函数. vector的底层数据结构是数组,当你用返回对象的方法返回vector时,vector会进行整个数组的拷贝,如果数组较大,那么效率是很低的。. 所以,如果你要返回的vector是在函数内部new的,那么可以返回该vector的指针,这样的话你必须注意该vector的释放问题。. 另外,由于vector的存储空间位置可能在插入、删除的时候变化,所以要小心迭代器的失效等问题。.
