之前我们分享了STL的一些容器,再介绍vector中只介绍了二维的vector的定义并没有说二维的vector怎么遍历,那么我们今天就来看下二维的vector怎么遍历
看下面的代码吧。
#include<stdio.h> //时间复杂度为n²longn
#include<algorithm>
#include<vector>
#include<stdlib.h> //产生随机数
#include<iostream>
using namespace std;
int main()
{
vector<vector<int>> viA(10);
for (int i = 0; i < 10;i++)
for (int j = 0; j < 10; j++)
{
viA[i].push_back(rand()%100); //根据实际情况输入你想要的值
}
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
cout << viA[i][j] << "\t";
}
cout << endl;
}
cout << "按行排序后的输出" << endl;
for (int i = 0; i < 10; i++)
{
sort(viA[i].begin(), viA[i].end());//默认为从小到大排序
}
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
cout << viA[i][j] << "\t";
}
cout << endl;
}return 0;
}
#include<iostream> //个人感觉这个排序的代码完全没有必要,应为排完之后就变为了一个一维的数组了,看实际情况来说吧
#include<cstdio>
#include<algorithm>
using namespace std;
bool cmp(int p,int q)
{
return p>q;
}
int main()
{
int i;
int m[3][2];
m[0][0]=1; m[0][1]=7;
m[1][0]=4; m[1][1]=5;
m[2][0]=2; m[2][1]=9;
sort( (int*)m, (int*)m+6, cmp);
for(i=0;i<3;i++)
{
printf("%d %d\n",m[i][0],m[i][1]);
}
return 0;
}