Compare commits
2 Commits
eb4944efe7
...
f956e9c5e2
Author | SHA1 | Date |
---|---|---|
flykhan | f956e9c5e2 | |
flykhan | 6e18cf2118 |
|
@ -0,0 +1,39 @@
|
|||
# 定义路径变量
|
||||
SRC_DIR = ./
|
||||
OBJ_DIR = ./
|
||||
BIN_DIR = ./
|
||||
|
||||
# 定义编译器
|
||||
CC = g++
|
||||
STD = -std=c++11
|
||||
# 定义目标文件
|
||||
TARGET = $(BIN_DIR)/a.out
|
||||
# 定义源文件
|
||||
SRCS = $(wildcard $(SRC_DIR)/*.cpp)
|
||||
# OBJS = $(OBJ_DIR)/lrc.o $(OBJ_DIR)/console.o $(OBJ_DIR)/start_mplayer.o $(OBJ_DIR)/time_delay.o $(OBJ_DIR)/main.o
|
||||
OBJS = $(patsubst $(SRC_DIR)/%.cpp, $(OBJ_DIR)/%.o, $(SRCS))
|
||||
|
||||
# 编译规则
|
||||
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
|
||||
$(CC) -c $< -o $@ $(STD)
|
||||
|
||||
# 链接规则
|
||||
$(TARGET): $(OBJS)
|
||||
$(CC) $^ -o $@ $(STD)
|
||||
|
||||
# 默认构建目标
|
||||
all: $(TARGET)
|
||||
|
||||
# 创建目录
|
||||
$(shell mkdir -p $(OBJ_DIR) $(BIN_DIR))
|
||||
|
||||
# 运行测试
|
||||
run: $(TARGET)
|
||||
$(TARGET)
|
||||
|
||||
# 清理规则
|
||||
clean:
|
||||
rm -rf $(OBJ_DIR)/*.o $(TARGET)
|
||||
|
||||
# 伪目标
|
||||
.PHONY: all clean
|
|
@ -0,0 +1,53 @@
|
|||
#include "MyArray.h"
|
||||
|
||||
MyArray::MyArray()
|
||||
{
|
||||
this->mCapacity = 100;
|
||||
this->mSize = 0;
|
||||
this->pAdress = new int[this->mCapacity]; // 在堆开辟空间
|
||||
}
|
||||
|
||||
// 有参构造函数,用户指定容量初始化
|
||||
MyArray::MyArray(int capacity)
|
||||
{
|
||||
this->mCapacity = capacity;
|
||||
this->mSize = 0;
|
||||
this->pAdress = new int[mCapacity]; // 在堆开辟空间
|
||||
}
|
||||
|
||||
// 根据位置添加元素
|
||||
void MyArray::SetData(int pos, int val)
|
||||
{
|
||||
if (pos < 0 || pos > mCapacity - 1)
|
||||
return; // 位置超出数组范围
|
||||
pAdress[pos] = val; // 当位置合法时,在该位置传入值 val
|
||||
}
|
||||
|
||||
// 获得指定位置数据
|
||||
int MyArray::GetData(int pos)
|
||||
{
|
||||
return pAdress[pos];
|
||||
}
|
||||
|
||||
// 尾插法
|
||||
void MyArray::PushBack(int val)
|
||||
{
|
||||
if (mSize >= mCapacity)
|
||||
return;
|
||||
|
||||
this->pAdress[mSize] = val;
|
||||
this->mSize++;
|
||||
}
|
||||
|
||||
// 获得长度
|
||||
int MyArray::GetLength()
|
||||
{
|
||||
return this->mSize;
|
||||
}
|
||||
|
||||
// 析构函数,释放数组空间
|
||||
MyArray::~MyArray()
|
||||
{
|
||||
if (this->pAdress != nullptr)
|
||||
delete[] this->pAdress;
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
// 数组类封装
|
||||
#ifndef MYARRAY_H
|
||||
#define MYARRAY_H
|
||||
|
||||
class MyArray
|
||||
{
|
||||
public:
|
||||
MyArray(); // 无参构造函数,用户没有指定容量,则初始化为100
|
||||
explicit MyArray(int capacity); // 有参构造函数,用户指定容量初始化
|
||||
~MyArray(); // 析构函数,释放数组空间
|
||||
|
||||
public:
|
||||
void SetData(int pos, int val); // 根据位置添加元素
|
||||
int GetData(int pos); // 获取指定位置数据
|
||||
void PushBack(int val); // 尾插法
|
||||
int GetLength(); // 获得长度
|
||||
|
||||
private:
|
||||
int mCapacity; // 数组一共可容纳多少个元素
|
||||
int mSize; // 当前有多少个元素
|
||||
int *pAdress; // 指向存储数据的空间
|
||||
};
|
||||
|
||||
#endif
|
|
@ -0,0 +1,23 @@
|
|||
#include "TestMyArray.h"
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
void test() // 测试方法
|
||||
{
|
||||
MyArray myarray(50); // 创建 50 个容量大小的数组
|
||||
//数组中插入元素
|
||||
for (int i = 0; i < 50; i++)
|
||||
{
|
||||
// 尾插法
|
||||
myarray.PushBack(i);
|
||||
// myarray.SetData(i, i * 2);
|
||||
}
|
||||
|
||||
// 打印数组元素
|
||||
for (int i = 0; i < myarray.GetLength(); i++)
|
||||
{
|
||||
cout << myarray.GetData(i) << " ";
|
||||
}
|
||||
cout << endl;
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
#ifndef __TEST_MY_ARRAY_H__
|
||||
#define __TEST_MY_ARRAY_H__
|
||||
|
||||
#include "MyArray.h"
|
||||
|
||||
void test(); // 测试方法
|
||||
|
||||
#endif
|
|
@ -0,0 +1,8 @@
|
|||
#include "TestMyArray.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
test();
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue