如何在 C++ 中從函式中返回一個陣列

Jinku Hu 2023年10月12日

在 C++ 中使用指標操作從函式中返回 C 式陣列的方法

``````#include <iostream>

using std::cin;
using std::cout;
using std::endl;
using std::string;

int *MultiplyArrayByTwo(int arr[], int size) {
for (int i = 0; i < size; ++i) {
arr[i] *= 2;
}
return arr;
}

int main() {
constexpr int size = 10;
int c_array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

int *ptr = MultiplyArrayByTwo(c_array, size);

cout << "array = [ ";
for (int i = 0; i < size; ++i) {
cout << ptr[i] << ", ";
}
cout << "]" << endl;

return EXIT_SUCCESS;
}
``````

``````array = [ 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, ]
``````

``````#include <iostream>

using std::cin;
using std::cout;
using std::endl using std::string;

void MultiplyArrayByTwo(int arr[], int size) {
for (int i = 0; i < size; ++i) {
arr[i] *= 2;
}
}

int main() {
constexpr int size = 10;
int c_array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

MultiplyArrayByTwo(c_array, size);

cout << "array = [ ";
for (int i = 0; i < size; ++i) {
cout << c_array[i] << ", ";
}
cout << "]" << endl;

return EXIT_SUCCESS;
}
``````

在 C++ 中使用 `vector` 容器從函式中返回陣列

``````#include <iostream>
#include <vector>

using std::cin;
using std::cout;
using std::endl using std::string;
using std::vector;

vector<int> MultiplyArrayByTwo(const vector<int> *arr) {
vector<int> tmp{};

for (const auto &item : *arr) {
tmp.push_back(item * 2);
}
return tmp;
}

int main() {
vector<int> cpp_array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

auto cpp_array_2x = MultiplyArrayByTwo(&cpp_array);

cout << "array = [ ";
for (int i : cpp_array_2x) {
cout << i << ", ";
}
cout << "]" << endl;

return EXIT_SUCCESS;
}
``````

DelftStack.com 創辦人。Jinku 在機器人和汽車行業工作了8多年。他在自動測試、遠端測試及從耐久性測試中創建報告時磨練了自己的程式設計技能。他擁有電氣/ 電子工程背景，但他也擴展了自己的興趣到嵌入式電子、嵌入式程式設計以及前端和後端程式設計。