直接上**
// main.h
#include "stdafx.h"
#include "datefile.h"
int _tmain(int argc, _tchar* argv)
// datefile.h
#pragma once
#include #include #include #include #include using namespace std;
typedef enum sorttype;
typedef struct tagnode
} else if (ntype == need_sort && node.ntype == dont_sort)
} bool bret = (wtarindex < node.wtarindex);
return bret;
}} node, *pnode;
typedef std::listcnodelist;
cnodelist g_lstnode;
void initdlglist(__in word wnum)
g_lstnode.push_back(node); }}
word* generatederangeorder(__in word wnum)
word * pwordtar = new word[wnum];
memset(pwordtar, 0, sizeof(word)*wnum);
// 2. 給目標陣列賦不重複的值
srand(gettickcount());
//cdlglist::iterator it = g_lstdlg.begin();
for (word i = 0; i < wnum; )
} // 3. dump出來
for (word i = 0; i < wnum; i ++)
// 4. 析構
delete pwordsrc;
//delete pwordtar;
return pwordtar;
}void derangedlglist(word * porder)
j ++;
if (it->ntype == need_sort)
} cout << "befor sort:" << endl;
// dump result
it = g_lstnode.begin();
for ( ; it != g_lstnode.end(); it ++) else if (it->ntype == need_sort)
} g_lstnode.sort();
cout << endl << "after sort:" << endl;
// dump result
it = g_lstnode.begin();
for ( ; it != g_lstnode.end(); it ++) else if (it->ntype == need_sort)
} delete porder;
porder = null;
}
1.區分排序與勿需排序的點.
list中每個節點都有乙個 sorttype 結構來判斷當前節點是需要排序的點, 還是不需要排序的點.
2.如何比較排序與勿需排序的點
這時需要設計list的sort函式, 我們需要知道list中所有排序與勿需排序的點之前的位置,
然後在比較的時候, 根據設定的排序值來比較.
另附一張程式過程圖
List元素自動排序
1 list中的物件實現comparable介面適用於list元素是可操作物件a 在元素物件裡面,加乙個compareto方法,如下 物件有欄位 order,並有對應的獲取方法 getorder 對order進行比較。public intcompareto user arg0 b 然後在需要排序的地...
HTML中部分元素介紹和CSS的層級關係
元素是塊級元素,他可用於組合其他html元素的容器。元素沒有特定的含義。由於他屬於塊級元素,瀏覽器會在其前後顯示換行。使用css,元素可以對所對應的內容塊設定樣式屬性。元素可作用文字的容器,沒有特定的含義。使用css時,元素可用於部分文字設定樣式屬性。級別選擇器權重a 行內樣式 1000 bid選擇...
對List物件進行排序
最近遇到需要對 list 物件按照某一引數 string型別 進行排序的問題,網上教的大多是自己寫排序方法或者用collections.sort 方法按照某一int型引數進行排序,找了好久找到一種很方便快捷的排序方法。對systemdatelist按systemtype進行排序 systemdate...