最近新到公司,帶教老師讓我寫動態陣列,哇,給我的感覺真的是,底層的東西,要求效能和**規範比較嚴,下面是**。
我會寫很詳細的注釋,方便以後自己**。希望各位請教了。
myarray.h
#ifndef myarray_h
#define myarray_h
#include //函式後面加const表示函式不改變類中的成員變數
//引數裡面加const &表示引數是值傳遞,省去零時物件的構建和析構
class myarray
;#endif // myarray_h
myarray.cpp
#include "stdafx.h"
#include "myarray.h"
void myarray::init()
void myarray::free()
bool myarray::invalidateindex(const int& nindex) const
else }
//預設建構函式
myarray::myarray()
//myarray::myarray(const int& nsize, double dvalue)
else }
}myarray::myarray(const myarray& arr)
myarray& myarray::operator = (const myarray& arr)
myarray::~myarray()
void myarray::print()
}void myarray::swap(myarray& arr)//通過異或來進行位址的直接操作
//通過淺拷貝來提公升效能
//myarray temp = std::move(arr);
//arr = std::move(*this);
//*this = std::move(temp);
/* //一樣的通過淺拷貝來提公升效能
myarray temp;
temp.m_data = arr.m_data;
temp.m_size = arr.m_size;
temp.m_max = arr.m_max;
arr.m_data = this->m_data;
arr.m_size = this->m_size;
arr.m_max = this->m_max;
this->m_data = temp.m_data;
this->m_size = temp.m_size;
this->m_max = temp.m_max;*/
}double myarray::front()
void myarray::clear()
int myarray::getsize() const
void myarray::setsize(const int& nsize)
m_size = nsize;
}double myarray::getat(const int& nindex) const
return m_data[nindex];
}void myarray::setat(const int& nindex, const double& dvalue)
else }
void myarray::pushback(const double& dvalue)
//刪除乙個元素
void myarray::deleteat(const int& nindex)
else }
void myarray::insertat(const int& nindex, const double& dvalue)
if (m_size < m_max) // 還沒滿,可以直接插入
else
++m_size;
}double myarray::operator (const int& nindex) const
main
#include "stdafx.h"
#include "myarray.h"
#include int main()
c 學習 基礎 動態陣列
建立動態陣列 include include using namespace std intmain int pia newint n if pia null 釋放 free p delete pia return0 建立動態陣列 include include using namespace st...
C基礎之陣列
首先我們介紹多維陣列 對於二維陣列a 4 6 由於陣列名代表陣列的起始位址,所以a 第一層 和第乙個元素a 0 0 位址的數字是相同的,但是意義卻是不同的。對於該陣列我們可以理解為 a的一維陣列 第一層 它有四個元素a 0 a 1 a 2 a 3 第二層 而每個元素又含有6個元素a 0 0 a 0 ...
C 基礎之陣列
由於陣列是資料的集合,所以陣列的型別就是資料的型別。他們分別是int double decimal char string bool第一種int nums new int 10 長度為10,索引為0 9 int型別第二種int nums new int 此陣列就能存5個值第三種int nums ne...