c++使用vector获取块矩阵
#include <vector>
#include <iostream>
using namespace std;
vector<vector<double>> block(vector<vector<double>> before, int start_x, int start_y, int block_x, int block_y) {
vector<vector<double>> bl;
for (int k = 0; k < block_x; k++) {
vector<double> temparay;
for (int p = 0; p < block_y; p++) {
temparay.push_back(before[start_x + k][start_y + p]);
}
bl.push_back(temparay);
temparay.erase(temparay.begin(), temparay.end());
}
return bl;
}
int main() {
vector<vector<double>> nums1 = {
{1, 2, 3},
{4, 15, 6},
{7, 8, 8}
};
vector<vector<double>> w = block( nums1, 0,0,2,2);
for (int i = 0; i < w.size(); i++)
{
for (int j = 0; j < w[0].size(); j++)
{
cout << w[i][j] << " ";
}
cout << endl;
}
}