C 實驗三 任務報告

2022-09-07 05:27:09 字數 3185 閱讀 3857

本次實驗比較倉促,有很多想寫清楚沒來得及,等班級考完再慢慢補充.

略模擬實驗任務2,不使用標準庫模板類vector,自己動手設計並實現乙個動態的整型陣列類vector_int

使其支援以下要求:

vector_int x(n); // 建立乙個動態大小的int型陣列物件x,向系統申請n個int型資料項

空間vector_int x(n, 6); // 建立乙個動態大小的int型陣列物件x,向系統申請n個int型資料項

空間, 初始值均為6

vector_int y(x); // 用已經存在的物件x構造新的物件y

y.at(0) = 999; // 通過at()方法訪問物件y中索引為0的資料項

要求:

① 設計並實現動態整型陣列類vector_int,儲存在檔案vector_int.hpp

② 編寫測試**檔案task4.cpp,測試其建構函式介面、複製建構函式、at()方法等,是否都正常使用,

是否實現了深複製。

task4.hpp

#ifndef exp3_task4_hpp

#define exp3_task4_hpp

#include using namespace std;

class vector_int

int get_capacity() const //返回容量

int at(int index) const //讀取某一位

void assign(int n, int num);//給某一位賦值

void push_back(int num);//在末尾插入乙個數字

void print();//輸出陣列

void print_address() const //輸出陣列首位址

};vector_int::vector_int(int n, int num)

vector_int::vector_int(const vector_int &obj)

vector_int::vector_int(const int *arr, int len)

void vector_int::assign(int n, int num)

}void vector_int::push_back(int num)

void vector_int::print()

#endif //exp3_task4_hpp

feb address: 0x61fd20

x1:created an array with capacity:7

1 1 2 3 5 8 13

address:0x61fd10

x2:created a array with capacity:7

1 1 2 3 5 8 13

address:0x61fd00

1 1 2 3 5 8 13 21

address:0x61fd00

x3:created a array with capacity:8

8 8 8 8 8 8 8 8

99 8 8 8 8 8 8 8 0 10

memory is free

memory is free

memory is free

程序已結束,退出**為 0

深拷貝,淺拷貝主要用於指標操作,其他的情況可以不用考慮.

也可以看看這篇文章

實現乙個動態矩陣類matrix,類matrix的宣告見檔案matrix.hpp

task5.hpp

#ifndef task5

#define task5

#include using namespace std;

class matrix

; // 建構函式,構造乙個n*n的矩陣

matrix(int n, int m) : lines(n), cols(m) ; // 建構函式,構造乙個n*m的矩陣

matrix(const matrix &x) : lines(x.lines), cols(x.cols)// 複製建構函式,使用已有的矩陣x構造

~matrix() ; //析構函式

// ~matrix()=default; //析構函式

void set(const double *pvalue)

; // 用pvalue指向的連續記憶體塊資料按行為矩賦值

void set(int i, int j, int value)//設定矩陣第i行第j列元素值為value

double &at(int i, int j) //返回矩陣第i行第j列元素的引用

double at(int i, int j) const // 返回矩陣第i行第j列元素的值

int get_lines() const //返回矩陣行數

int get_cols() const //返回矩列數

void print() const

} // 按行列印輸出矩陣

private:

int lines; // 矩陣行數

int cols; // 矩陣列數

double *p; // 指向存放矩陣資料的記憶體塊的首位址

};#endif

task5.cpp

#include #include "task5.hpp"

int main()

; matrix m1(2, 4); // 建立乙個2×4的矩陣

m1.set(x); // 用一維陣列x的值按行為矩陣m1賦值

cout<<"m1:"0 2 4 8

1 3 5 7

the first line is:

0 2 4 8

m2:0 2

4 81 3

5 7the first line is:

0 2m3:

9 24 8

1 35 7

程序已結束,退出**為 0

析構函式很重要,但是我現在一般都是直接交給編譯器來完成,也完成的很完美.但是想要再進一步還需要多去嘗試自己寫.

FreeRTOS學習(三)任務管理

2.任務刪除 3.任務掛起與恢復 4.任務相關api freertos 提供了多種任務建立的api,這裡主要列舉了動態建立和靜態建立 函式 api 功能描述 xtaskcreate 動態建立,堆疊由 freertos 動態分配 xtaskcreatestatic 靜態建立,堆疊由使用者指定分配 1....

專案三 任務二 配置SSH服務

專案三 任務二 配置ssh服務 第1步 檢查ssh軟體的安裝 通過以下命令檢查ssh軟體的安裝情況,一般情況下,系統已經預設安裝了此服務。rpm gopenssh 檢視ssh 服務客戶端的發裝。rpm gopenshserve 檢視ssh 服務服務端的安裝。如果沒有查詢到相關的openssh軟體,請...

專案三 任務二 配置SSH服務

ssh服務採用非對稱性演算法。例如 b 主機是一台ssh的伺服器,那麼它需要以各種形式公開發布自己的公鑰,假如被a 主機想要與b伺服器通訊,a 主機需要得到b伺服器的公鑰,a 主機在向b伺服器傳送資料時,會使用b伺服器的公鑰把資料加密後傳輸給b伺服器,b伺服器收到資料後就使用自己的私鑰進行解密,如果...