1057 Stack (30分)
题目要求我们输出栈中从小到大中间的数,考虑到有重复元素和排序,所以选择multiset,但是我们不能直接使用下标访问set元素,比如*(s.begin() + 2) 或 s[2],都是不行的。直接遍历的话会超时,所以我们可以用以下思路:
指针与多维数组
多维数组
多维数组实际上是数组的数组的数组的………….
例如:a[3][4],a指向一个维度为4的一维数组,a指向这个一维数组的第一个元素,*a表示这个一维数组的第一个元素。1
2
3
4
5
6
7
8
9
10
11
12
13int a[3][4] , sum = 1;
for(int i = 0 ; i<3 ; ++i){
for(int j = 0 ; j<4 ; ++j){
a[i][j] = sum++;
}
}
for(int i = 0 ; i<3 ; ++i){ //遍历
for(int j = 0 ; j<4 ; ++j){
cout << *(*(a+i) + j) << ' ';
}
cout<<endl;
}
函数的多维数组参数
两种方式:1
2void print(int (*a)[10])
void print(int a[][10]) //实际形参是指向含有10个元素的数组的指针
