c++中提供的陣列並不方便,所以有必要過載乙個一維陣列類,過載他的+ , -, * ,/ 等功能以及下標操作等
具體實現**如下:
templateclass array1d
t& operator(int i)const;
int getsize()
array1d& operator= (const array1d& v);
array1doperator+()const;//一元加法操作
array1doperator+(const array1d& v);
array1d operator-()const;
array1doperator-(const array1d& v)const;
array1doperator*(const array1d&v)const;
array1d operator+=(const t& x);
private:
int size;
t* element;
};templatearray1d::array1d(int sz)
templatearray1d::array1d(const array1d& v)
}templatet& array1d::operator(int i)const
templatearray1darray1d::operator-(const array1d& v)const
return w;
}templatearray1d& array1d::operator=(const array1d& v)
} return *this;
}templatearray1darray1d::operator-()const
return w;
}templatearray1d& array1d::operator+=(const t& x)
return *this;
}templatearray1darray1d::operator+(const array1d& v)
array1dw(size);
for (int i = 0; i < size;i++)
return w;
}templatearray1darray1d::operator+()const
return w;
}
以上**就完成了對c++一維陣列的過載。
複雜性: 當t是乙個內部c++資料型別時,建構函式和析構函式的複雜性為o(1),當t時乙個自定義型別的時候,建構函式和析構函式的複雜性為0(size)
一維陣列複習筆記
陣列的元素型別 建立陣列物件會在記憶體中開闢出乙個連續的空間陣列的長度一旦確定,就不可修改 按照元素型別 動態初始化 總結 string stu newstring 4 stu 0 劉備 stu 1 關羽 stu 2 張飛 stu 3 諸葛亮 for int i 0 i stu.length i 浮...
一維陣列複習,二維陣列與多維陣列
輸入班級人數,輸入每個人的分數,求班級最高分,最低分,以及去掉兩個最高分並且去掉兩個最低分之後的所有人員的平均分。輸入班級人數,輸入乙個人名,輸入乙個分數。求班級最高分是多少,是誰的分數 注意姓名跟分數對應 運用兩個一維陣列 運用乙個一維陣列 乙個元素是乙個點,一維陣列是一條線,二維陣列是乙個面,三...
演算法練習 一維陣列旋轉
題目描述 求乙個一維陣列向右旋轉k個位置後的結果。比如,一維陣列,當k 2時,求得的結果為。要求常數級空間複雜度,允許修改原有陣列。這樣很簡單,使用乙個額外的空間,儲存原有陣列的元素,然後可以錯位複製原有陣列 元素,即可達到題目的要求。比如陣列,當k 2時,先將4,5複製到結果陣列,然後將1,2,3...