📅  最后修改于: 2023-12-03 15:25:17.140000             🧑  作者: Mango
有时候我们需要将一个向量按照一定的规则分割成两个向量。这时候,我们可以使用C++中的STL库中的vector容器来实现。
以下是一个将一个vector
#include <iostream>
#include <vector>
using namespace std;
//将一个向量分成两个
template <typename T>
vector<vector<T>> splitVectorInHalf(vector<T> vec)
{
int vecSize = vec.size() / 2;
vector<T> vecFirstHalf(vec.begin(), vec.begin() + vecSize);
vector<T> vecSecondHalf(vec.begin() + vecSize, vec.end());
vector<vector<T>> vecSplit {vecFirstHalf, vecSecondHalf};
return vecSplit;
}
int main()
{
//创建一个整数向量
vector<int> vec{1, 2, 3, 4, 5, 6, 7, 8, 9};
//将向量分成两半
vector<vector<int>> vecSplitted = splitVectorInHalf(vec);
//打印结果
cout << "第一个向量:" << endl;
for (auto i : vecSplitted[0]) {
cout << i << " ";
}
cout << endl << "第二个向量:" << endl;
for (auto i : vecSplitted[1]) {
cout << i << " ";
}
return 0;
}
输出结果为:
第一个向量:
1 2 3 4
第二个向量:
5 6 7 8 9
在这个示例代码中,我们创建了一个vector
这个函数非常简单。它首先计算容器大小的一半(即vecSize),然后使用begin()和end()函数将vector
在主函数中,我们用cout打印输出结果。每个子向量都被存储在vecSplitted vector<vector
这就是将向量分成两半的示例C++代码。