在数组中选择k

不得不说auto关键字真的很好用


#include<iostream>
#include<vector>
using std::vector;
using std::cin;
using std::cout;
using std::endl;


class SelsctK
{
private: 
	vector<int> arr;
	int flag = 0;
public:
	SelsctK(vector<int>& a) :arr(a){}
	vector<int>& MySort()//排序
	{
		flag = 1;
		for (auto i = arr.begin(); i != arr.end(); i++)
		{
			for (auto j = i; j != arr.end(); j++)
			{
				if (*i>*j)
				{
					int temp = *j;
					*j = *i;
					*i = temp;
				}
			}
		}
		return arr;
	}

	void DisPlay()
	{
		if (flag==1)
		{
			cout << "数组以排序" << endl;
			for (auto i = arr.begin(); i < arr.end(); i++)
			{
				cout << *i;

			}
			cout << endl;
		}
		else
		{
			cout << "数组未排序" << endl;
			for (auto i = arr.begin(); i < arr.end(); i++)
			{
				cout << *i;
			}
			cout << endl;

		}
		
	}
	int SelecctK(int i)
	{
		return arr[i];
	}
	int geLength()
	{
		return arr.size();
	}
};
int main()
{
	cout << "输入一组数字,Ctrl+z结束" << endl;
	vector<int> d;
	int n;
	while (cin>>n)
	{
		d.push_back(n);
	}
	SelsctK a(d);
	a.DisPlay();
	a.MySort();
	a.DisPlay();
	int k=0;
	/*cout << "输入k" << endl;
	
	cin >> k;*/
	if (k>=0&&k<(a.geLength()-1))
	{
		cout << "输入的是" << k << endl;
		cout << a.SelecctK(k);
	}
	else
	{
		cout << "输入的是" << k << endl;
		cout << "输入的不正确" << endl;
	}
	
	system("pause");
	return 0;
}


猜你喜欢

转载自blog.csdn.net/sinat_14884161/article/details/50966320