记录直接声明并定义二维数组vector:
vector<vector<string>> tickets = { {"MUC""LHR"}, { "JFK" "MUC" }, { "SFO" "SJC" }, { "LHR" "SFO" } };
vector<pair<int, int>>sortB(length);
for (int i = 0; i < length; i++) {
sortB[i] = { nums2[i], i };
}
给定一个 n × n 的矩阵,求它顺时针旋转 90 度的结果,且必须在原矩阵上修改(in-place)。
怎样能够尽量不创建额外储存空间呢?
```cpp
#pragma once
#ifndef MATRIX_H_INCLUDE
#define MATRIX_H_INCLUDE
#include <vector>
using namespace std;
class Matrix
{
public:Matrix();
~Matrix();
void rotate(vector<vector<int> >& vec);
private:
};
#endif // !MAXT
注释掉的初始化和利用迭代器输出vector二维数组都是可运行的
void main()
{
int n = 3;
int temp;
vector<vector<int> > vec(n);
Matrix matrix;
//初始化vector
//for (int i = 0; i < n; i++)
//{
// vec[i].resize(n);
//}
//输入
printf("INPUT:[\n");
for (int i = 0; i < n; i++)
{
printf("[");
for (int j = 0; j < n; j++)
{
cin >> temp;
vec[i].push_back(temp);
}
printf("] ");
}
printf("]");
cout << endl;
//cout << vec[2].back();
//矩阵旋转90
matrix.rotate(vec);
//使用迭代器
/*vector<int>::iterator it; //it 是一个地址
vector<vector<int>>::iterator iter;
vector<int> vec_tmp;
cout << "OUTPUT : " << endl;
for (iter = vec.begin(); iter != vec.end(); iter++)
{
vec_tmp = *iter;
for (it = vec_tmp.begin(); it != vec_tmp.end(); it++)
cout << *it << " ";
cout << endl;
}*/
//输出
printf("OUTPUT:[\n");
for (int i = 0; i < n; i++)
{
printf("[");
for (int j = 0; j < n; j++)
{
cout<< vec[i][j]<<" ";
}
printf("],\n");
}
printf("]");
}
本文介绍如何在C++中使用vector创建和初始化二维数组,包括直接声明、定义及赋值的方法,并提及通过迭代器输出vector二维数组的实现。
1156

被折叠的 条评论
为什么被折叠?



