阅读背景:

自己写的一个快速排序

来源:互联网 
<pre name="code" class="cpp">#include "stdafx.h"

#include <list>
#include <string>
#include <iostream>

using namespace std;

#define MAXTCPCONNECT 1000

struct RemoteSOCKINFO
{
	int s;   //socket
	char szIp[50];
	int nPort;
};

struct myList{
	int p;
	RemoteSOCKINFO rs[MAXTCPCONNECT];  //max   connect
};

typedef myList* pmyList;

void My_sort(myList* pList) {
	if (pList->p == 0) return;
	myList *Temp = new myList[pList->p];
	//将pList 数据拷贝到Temp
	for (int i = 0; i <= pList->p; ++i) {
		memcpy(&(Temp->rs[i]), &(pList->rs[i]), sizeof(RemoteSOCKINFO));
	}
	//重置pList
	int j = 0;
	for (int i = 0; i <= pList->p; ++i) {
		if (Temp->rs[i].s == -1) {
			continue;
		}
		pList->rs[j].nPort = Temp->rs[i].nPort;
		pList->rs[j].s = Temp->rs[i].s;
		strcpy(pList->rs[j].szIp, Temp->rs[i].szIp);
		++j;
	}
	//除去无效数据
	for (int i = j; i <= pList->p; ++i) {
		pList->rs[j].nPort = -1;
		pList->rs[j].s = -1;
		strcpy(pList->rs[j].szIp, "");
	}
	//注意 这个p将把下标移动到最后一个有效数据上 数量=p+1
	//比如 rs[6] 那么p = 6 但是真实数量是6+1
	pList->p = j-1;
}

int _tmain(int argc, _TCHAR* argv[])
{
	pmyList m_list = new myList;
	m_list->p = 6;
	m_list->rs[0].s = 1;
	m_list->rs[0].nPort = 1;
	strcpy(m_list->rs[0].szIp,"000");
	m_list->rs[1].s = 2;
	m_list->rs[1].nPort = 2;
	strcpy(m_list->rs[1].szIp, "111");
	m_list->rs[2].s = -1;
	m_list->rs[2].nPort = -1;
	strcpy(m_list->rs[2].szIp, "-222");
	m_list->rs[3].s = -1;
	m_list->rs[3].nPort = -1;
	strcpy(m_list->rs[3].szIp, "-333");
	m_list->rs[4].s = 1;
	m_list->rs[4].nPort = 1;
	strcpy(m_list->rs[4].szIp, "444");
	m_list->rs[5].s = -1;
	m_list->rs[5].nPort = -1;
	strcpy(m_list->rs[5].szIp, "-555");
	m_list->rs[6].s = 6;
	m_list->rs[6].nPort = 6;
	strcpy(m_list->rs[6].szIp, "666");

	for (int i = 0; i <= m_list->p; i++) {
		cout << m_list->rs[i].szIp << endl;
	}
	cout << "以上为初始的" << m_list->p << endl;
	My_sort(m_list);

	for (int i = 0; i <= m_list->p; i++) {
		cout << m_list->rs[i].szIp << endl;
	}

	cout << "以上为新的" << m_list->p << endl;
	system("pause");
	return 0;
}<pre name="code" class="cpp">#include "stdafx.h



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: