C语言如何自定义Array实现查询?

摘要:#include<iostream> template<typename T, size_t S> class Array { private: T m
#include<iostream> template<typename T, size_t S> class Array { private: T m_Data[S]; public: constexpr int Size() const { return S; } T& operator[](size_t index) { return m_Data[index]; } const T& operator[](size_t index) const { return m_Data[index]; } T* Data() { return m_Data; } const T* Data() const { return m_Data; } //Array(int size) { // //在栈上分配空间 // //m_Data = (int*)alloca(size); //} }; int main() { //int array[5]; int size = 5; Array<int, 5> data; static_assert(data.Size() < 10, "Size is too large!"); memset(&data[0], 0, data.Size() * sizeof(int)); data[1] = 10; data[4] = 20; for (int i = 0; i < data.Size(); i++) { std::cout << data[i] << std::endl; } Array<std::string, data.Size()> newArray; newArray[0] = "Hello"; newArray[4] = "World"; for (int i = 0; i < newArray.Size(); i++) { std::cout << newArray[i] << std::endl; } std::cin.get(); }