#include #include

struct CustomData { int id; double value; char name[20];

CustomData() {
    id = 0;
    value = 0.0;
    memset(name, 0, sizeof(name));
}

};

class CustomDataStructure { private: CustomData* data; int size; int capacity;

public: CustomDataStructure() { data = nullptr; size = 0; capacity = 0; }

~CustomDataStructure() {
    delete[] data;
}

void insertData(CustomData newData) {
    if (size >= capacity) {
        int newCapacity = (capacity == 0) ? 1 : capacity * 2;
        CustomData* newDataArray = new CustomData[newCapacity];
        memcpy(newDataArray, data, size * sizeof(CustomData));
        delete[] data;
        data = newDataArray;
        capacity = newCapacity;
    }

    data[size++] = newData;
}

int findDataById(int searchId) {
    for (int i = 0; i < size; i++) {
        if (data[i].id == searchId) {
            return i;
        }
    }
    return -1;
}

void printBinaryStorage() {
    unsigned char* byteData = reinterpret_cast<unsigned char*>(data);
    for (int i = 0; i < size * sizeof(CustomData); i++) {
        std::cout << std::hex << static_cast<int>(byteData[i]) << " ";
    }
    std::cout << std::endl;
}

};

int main() { CustomDataStructure structure; CustomData data1; data1.id = 1; data1.value = 3.14; strncpy(data1.name, "Data 1", sizeof(data1.name) - 1);

CustomData data2;
data2.id = 2;
data2.value = 2.718;
strncpy(data2.name, "Data 2", sizeof(data2.name) - 1);

structure.insertData(data1);
structure.insertData(data2);

structure.printBinaryStorage();

int index = structure.findDataById(1);
if (index != -1) {
    std::cout << "Data found at index: " << index << std::endl;
} else {
    std::cout << "Data not found" << std::endl;
}

return 0;

}


原文地址: https://www.cveoy.top/t/topic/pywo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录