c 基礎學習之動態陣列

2021-09-24 10:48:28 字數 2147 閱讀 5174

最近新到公司,帶教老師讓我寫動態陣列,哇,給我的感覺真的是,底層的東西,要求效能和**規範比較嚴,下面是**。

我會寫很詳細的注釋,方便以後自己**。希望各位請教了。

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...