c++函数返回一个vector
时间: 2023-07-18 08:44:20 浏览: 58
在 C++ 中,可以使用 `vector` 容器来动态管理数组,函数可以返回一个 `vector` 对象,具体实现方式如下:
```cpp
#include <iostream>
#include <vector>
using namespace std;
vector<int> func() {
vector<int> v;
for (int i = 1; i <= 5; i++) {
v.push_back(i);
}
return v;
}
int main() {
vector<int> v = func();
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << endl;
return 0;
}
```
在上述代码中,函数 `func()` 创建了一个 `vector` 对象 `v`,然后将 1~5 的整数插入到 `v` 中。最后,函数返回 `v` 对象。在 `main()` 函数中,我们调用 `func()` 函数得到一个 `vector` 对象,遍历其元素并输出。需要注意的是,由于 `vector` 对象的内部实现是动态分配的数组,因此不需要手动释放内存。
输出结果为:
```
1 2 3 4 5
```
需要注意的是,在函数返回 `vector` 对象时,可以使用 `vector` 的拷贝构造函数或移动构造函数来避免对象的拷贝,提高程序的效率。例如,可以将函数定义改为以下形式:
```cpp
vector<int> func() {
vector<int> v;
for (int i = 1; i <= 5; i++) {
v.push_back(i);
}
return move(v);
}
```
在上述代码中,我们在返回 `v` 对象时使用了 `move` 函数,该函数将 `v` 对象的所有权移动到函数返回值中,避免了对象的拷贝。