class Solution {
public:
/*
* @param A: an integer array
* @return:
*/
void sortIntegers(vector<int> &A) {
if(!A.empty())
{
int length = A.size();
int * temp = new int[length];
int i;
for(i = 0;i < length;i++)
temp[i] = A[i];
A.clear();
int x,y;
int max;
for(x = 0;x < length;x++)
{
max = 0;
for(y = 0;y < length-x;y++)
{
if(temp[max] < temp[y])
max = y;
}
if(max != length-x-1)
{
int temps;
temps = temp[max];
temp[max] = temp[length-x-1];
temp[length-x-1] = temps;
}
}
for(i = 0;i < length;i++)
A.push_back(temp[i]);
delete temp;
}
}
};
写这道题目的时候,虽然简单,但是并没有一遍通过。通过题目了解#include<vector>使用vector对象,vector<int> v;
似乎需要使用模板。不过并不需要额外的命名空间。v.pushback()为唯一的放入方法,而v.at(i)比直接调用v[i]要慢.(后面更慢)
认识到:①vector,②iterator,③命名空间,④c++中的五种作用域—文件》》命名空间》》类》》函数》》复合语句,⑤虚函数,纯虚函数
,普通成员函数的区别,⑥稍微了解C++的内存模型,⑦vector<int>::iterator表示在类的域中声明的类类型(这是通过typedef xx iterator)完成的
具体的请看MSDN系统中的Library,可以在优快云的下载里找五个分开的包,博主就是从那里下载的(vc++6.0一般盗版的
都没有这个系统,而更高级的版本似乎都有这个MSDN帮助系统)