急需:已知有一个整型数组a,其内容为1 3 5 7 9 2 4 6 8 10.

已知有一个整型数组a,其内容为1 3 5 7 9 2 4 6 8 10。先对数组进行升序排序,再使用它产生向量b,然后再向尾部追加11,并按降序输出向量的内容和capacity()的内容
用c++编写这个程序。

#include <iostream>
#include <vector>
using namespace std;
inline void swap(int &a, int &b) { int p = a; a = b; b = p; }
void qsort(int array[], int left, int right)
{
int i, j, s;
if(left < right){
i = left;
j = right;
s = array[left];
while(i < j){
while(i < j && array[j] > s) j--;
if(i < j) swap(array[i++], array[j]);
while(i < j && array[i] < s) i++;
if(i < j) swap(array[i], array[j--]);
}
qsort(array, left, i);
qsort(array, i + 1, right);
}
}
int main()
{
int a[10] = {1, 3, 5, 7, 9, 2, 4, 6, 8, 10};
vector<int> b;
qsort(a, 0, 9);
for(int i = 0; i < 10; i++) b.push_back(a[i]);
b.insert(b.end(), 11);
reverse(b.begin(), b.end());
for(vector<int>::iterator i = b.begin(); i != b.end(); i++) cout << *i << " ";
cout << endl << b.capacity() << endl;
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-20
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
void main()
{
int a []={1,3,5,7,9,2,4,6,8,10};
sort (a,a+10);
copy (a,a+10,ostream_iterator<int>(cout," "));
cout<<endl;
vector<int>b(a,a+10);
b.push_back(11);
reverse_copy(b.begin(),b.end(),ostream_iterator<int>(cout," "));
cout<<endl;
cout<<b.capacity();
cout<<endl;
}
相似回答