UEC++既可以返回bool数组又可以返回int32
时间: 2023-08-13 10:08:32 浏览: 110
UEC++可以使用模板类或函数来实现返回不同类型的数据,包括bool数组和int32等。以下是一个示例代码:
```cpp
#include <iostream>
#include <vector>
template <typename T>
class Result {
public:
Result(const std::vector<T>& data) : data_(data) {}
const std::vector<T>& getData() const { return data_; }
private:
std::vector<T> data_;
};
template <typename T>
Result<T> getResult() {
// 这里可以根据具体情况返回不同类型的数据
// ...
std::vector<T> data;
if (std::is_same<T, bool>::value) {
data.push_back(true);
data.push_back(false);
data.push_back(true);
} else if (std::is_same<T, int32_t>::value) {
data.push_back(1);
data.push_back(2);
data.push_back(3);
}
return Result<T>(data);
}
int main() {
auto boolResult = getResult<bool>();
auto intResult = getResult<int32_t>();
const auto& boolData = boolResult.getData();
const auto& intData = intResult.getData();
for (const auto& b : boolData) {
std::cout << std::boolalpha << b << " ";
}
std::cout << std::endl;
for (const auto& i : intData) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
```
这个示例代码中,我们定义了一个模板类`Result`,用来封装返回的数据。`getResult`函数返回一个`Result`对象,对象中包含了一个`std::vector`类型的数据,数据的类型由调用者传入的模板参数`T`决定。在`getResult`函数中,我们通过判断`T`的类型来返回不同类型的数据。在主函数中,我们分别调用`getResult<bool>`和`getResult<int32_t>`函数,得到不同类型的结果,并打印出来。
阅读全文