在没有std::initializer_list的情况下初始化模板化类,使其具有固定的大小,可以通过以下方法实现:
template <typename T, int size>
class FixedSizeArray {
public:
FixedSizeArray(T value) {
for (int i = 0; i < size; i++) {
data[i] = value;
}
}
private:
T data[size];
};
// 使用示例
FixedSizeArray<int, 5> arr(10); // 创建一个大小为5的整数数组,每个元素初始化为10
template <typename T, int size>
class FixedSizeArray {
public:
FixedSizeArray() {
for (int i = 0; i < size; i++) {
data[i] = T();
}
}
FixedSizeArray& operator=(const T& value) {
for (int i = 0; i < size; i++) {
data[i] = value;
}
return *this;
}
private:
T data[size];
};
// 使用示例
FixedSizeArray<int, 5> arr;
arr = 10; // 将数组的每个元素赋值为10
这些方法可以在没有std::initializer_list的情况下初始化模板化类,并使其具有固定的大小。根据具体的需求和场景,选择适合的方法进行初始化。
领取专属 10元无门槛券
手把手带您无忧上云