请帮我解释这个Vector实例.

来源:百度知道 编辑:UC知道 时间:2024/06/25 01:56:33
#include<iostream>
#include<vector>
using namespace std;

class sort{
private:
int sign[10];
vector<int> bin[20];
public:
void binsort(int a[],int n,int si,int k);
};

void sort::binsort(int a[],int n, int si,int k){
int m=0;
for(int i=0;i<n;i++){
int b=(a[i]%si)/(si/10);
bin[b].push_back(a[i]);
}
for(i=0;i<10;i++)
if(bin[i].size()!=0){
for(int j=0;j<bin[i].size();j++,m++)
a[m]=bin[i][j];

}cout<<"第"<<k<<"次排序结果为:"<<endl;
for(i=0;i<20;i++)
cout<<a[i]<<' ';
cout<<endl<<endl;
for(i=0;i<10;i++)
bin[i].resize(0);
}

main(){
int a[20];
sort my;
int m=1,k=0,x;
cout<<"原始数据为:"<<endl;
for(int i=0;i<20;i++){
cin>>a[i];
cout

认为vector<int>是不定长int型数组
vector<int> bin[20]; 这样的数组有20个
bin[b].push_back(17); 将17 加入到第b个不定长int型数组 的最末
(设第b个不定长int型数组 有 1 2 3 3个元素 调用这个表达式后是
1 2 3 17 4个元素)
bin[i].size()!=0 判断第i个不定长int型数组是不是0长度 也就是有没有元素
bin[i].resize(0); 使第i个不定长int型数组长度为0 清除元素

bin[b].push_back(a[i])将a[i]加入到bin[b]的末尾
bin[i].size()返回bin[i]内元素个数
bin[i].resize(0)将bin[i]的容量设置为0,也就是清空里面所有元素