C++类模板

本文通过C++实现自定义数组类,并演示了如何使用该类存储整数及自定义数据类型。文章展示了初始化、扩容、尾部插入、尾部删除等操作,并提供了实例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 main.cpp

#include <iostream>
#include <string>

using namespace std;

#include "MyArray.hpp"

void printIntArr(MyArray<int> &arr) {
    for (int i = 0; i < arr.getSize(); i++) {
        cout << arr[i] << endl;
    }
}

void test() {
    MyArray<int> arr1(5);
    for (int i = 0; i < 5; i++) {
        arr1.PushBack(i);
    }
    cout << "arr1的打印输出为:" << endl;
    printIntArr(arr1);
    cout << "arr1的容量为:" << arr1.getCapacity() << endl;
    cout << "arr1的大小为:" << arr1.getSize() << endl;
    MyArray<int> arr2(arr1);
    cout << "arr2的打印输出为:" << endl;
    printIntArr(arr2);
    arr2.PopBack();
    cout << "arr2尾删后:" << endl;
    cout << "arr2的容量为:" << arr2.getCapacity() << endl;
    cout << "arr2的大小为:" << arr2.getSize() << endl;

}

//测试自定义数据类型
class Person {
public:
    Person() {//这里不写默认构造函数      MyArray<Person> arr1(5); 这里会报错

    }

    Person(string n, int a) {
        name = n;
        age = a;
    }

    string name;
    int age;

};

void printPersonArray(MyArray<Person> &arr) {
    for (int i = 0; i < arr.getSize(); i++) {
        cout << arr[i].name << " " << arr[i].age << endl;

    }

}

void test2() {
    MyArray<Person> arr1(10);
    for (int i = 0; i < 5; i++) {
        Person p("name" + to_string(i), i + 10);
        arr1.PushBack(p);
    }

    printPersonArray(arr1);

    cout << "arr1的容量为:" << arr1.getCapacity() << endl;
    cout << "arr1的大小为:" << arr1.getSize() << endl;


}

int main() {
//    test();
    test2();
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值