lineartlist.h :
#pragma once
template
<
class
t>
class
lineartlist
;virtual
bool
empty()
const=0
;// 判斷線性表是否為空
virtual
intsize()
const=0
;// 返回線性表的長度
virtual t&
get(
int theindex)
const=0
;//返回索引為theindex的元素
virtual
intindexof
(const t& theelement)
const=0
;//返回元素theelement第一次出現時的索引
virtual
void
erase
(int theindex)=0
;//刪除索引theindex的元素
virtual
void
insert
(int theindex,
const t& theelement)=0
;//把theelement插入線性表中索引為theindex的位置上
virtual
void
output()
const=0
;//把線性表插入輸出流out
};
arraylist.h :
#pragma once
#include
"lineartlist.h"
//不可省略
template
<
class
t>
class
arraylist
:public lineartlist
bool
empty()
const
intsize()
const
t&get
(int theindex)
const
;int
indexof
(const t& theelement)
const
;void
erase
(int theindex)
;void
insert
(int theindex,
const t& theelement)
;void
output()
const
;int
capacity()
const
void
changelengthid
(t *
& a,
int oldlength,
int newlength)
const;}
;
arraylist.cpp :
#include
"arraylist.h"
//不可省略
#include
using
namespace std;
template
<
class
t>
void arraylist
::checkindex
(int theindex)
const
}template
<
class
t>
inline arraylist
::arraylist
(int initialcapacity)
else
}template
<
class
t>
arraylist
::arraylist
(const arraylist
& thelist)
template
<
class
t>
t& arraylist
::get
(int theindex)
const
template
<
class
t>
int arraylist
::indexof
(const t& theelement)
const
else
return0;
}template
<
class
t>
void arraylist
::erase
(int theindex)
template
<
class
t>
void arraylist
::insert
(int theindex,
const t& theelement)
if(listsize == arraylength)
copy
(element + theindex, element + listsize, element + theindex +1)
;*(element + theindex)
= theelement;
listsize++;}
template
<
class
t>
void arraylist
::output()
const
}template
<
class
t>
void arraylist
::changelengthid
(t*& a,
int oldlength,
int newlength)
const
t* temp =
new t[newlength]
;int number =
min(oldlength, newlength)
;copy
(a, a + number, temp)
;delete
a;a = temp;
}
test.cpp :
#include
using
namespace std;
#include
"arraylist.h"
#include
"arraylist.cpp"
//兩者皆不可省略
這次讓我記憶特別深刻啊!第一次使用模板類有乙個問題一直無法解決,被困在這裡大半個小時。
模板類必須要求:
#include
"arraylist.h"
#include
"arraylist.cpp"
//兩者皆不可省略
這兩個匯入都不可省略。
還有就是對const類也有了深刻印象,非const類可以呼叫非const函式和const函式,但是const類只能呼叫const函式
C ArrayList的常用方法
add 將物件新增到arraylist的結尾處 addrange 將集合中的某些元素新增到arraylist的結尾處 insert 將元素插入arraylist的指定索引處 insertrange 將集合中的某些元素插入arraylist的指定索引處 copyto 將arraylist或它的一部分複...
C ArrayList的使用方法
1 什麼是arraylist arraylist就是傳說中的動態陣列,用msdn中的說法,就是array的複雜版本,它提供了如下一些好處 動態的增加和減少元素 實現了icollection和ilist介面 靈活的設定陣列的大小 2 如何使用arraylist 最簡單的例子 arraylist lis...
C Arraylist的sort函式的用法
arraylist的sort函式有幾種比較常用的過載 1.不帶引數 2.帶乙個引數 public virtual void sort icomparer comparer 引數comparer 型別 system.collections.icomparer 比較元素時要使用的 icomparer 實...