如何创建一个类,以便向量工作 std::vector<MyClass<int>> v{ 1,2,3 };

how to create a class so that the vector works std::vector<MyClass<int>> v{ 1,2,3 };

本文关键字:gt lt MyClass int vector 工作 创建 何创建 一个 向量 std      更新时间:2023-10-16

>我需要一类才能使指令正常工作

int main() {
// create a vector with values 10,2,3
std::vector<MyClass<int>> v{ 10,2,3 };
//print values
for (const auto& m : v) std::cout << m.value() << ",";
return 0;
}

只需编写一个template类:

template<typename T>
class MyClass {
private:
T val;
public:
MyClass(T a) : val{std::move(a)} {}
T value() const { return val; }
};

请注意,如果将构造函数标记为explicit

explicit MyClass(T a) : val{std::move(a)} {}

然后,您必须在向量初始值设定项列表中显式构造值:

std::vector<MyClass<int>> v{ MyClass<int>{10}, MyClass<int>{2}, MyClass<int>{3} };