gpt4 book ai didi

C++ 函数返回 int 到字符串变量

转载 作者:太空宇宙 更新时间:2023-11-03 10:25:27 24 4
gpt4 key购买 nike

我有一个生成随机数的函数。问题是我在 T 可能是 int 或 string 的模板类中使用它。当我选择字符串时,我收到关于不可能转换的错误。如何根据模板类型返回整数并将其分配给字符串?

CTable(){
for (int i = 0; i < 10; i++){
int row = GenerateNumber();
int col = GenerateNumber();
T value = GenerateNumber(); //problem here when T is string
CCellDescr c(row, col, value);
cells.push_back(c);
}
}

int GenerateNumber(){
int number = rand() % 10 + 1;
return number;
}

最佳答案

您可以创建一个辅助模板来执行转换并将其专门用于 T 类型。例如:

示例代码

#include <iostream>
#include <string>

int GenerateNumber()
{
int number = rand() % 10 + 1;
return number;
}

template<typename T>
T convert(int value)
{
return value;
}

template<>
std::string convert(int value)
{
return std::to_string(value);
}

template<typename T>
class CTable
{
public:
CTable()
{
for (int i = 0; i < 10; i++)
{
int row = GenerateNumber();
int col = GenerateNumber();
T value = convert<T>(GenerateNumber());
std::cout << "'" << value << "'\n";
}
}
};

int main()
{
CTable<std::string> table;

return 0;
}

示例输出

'8'
'6'
'10'
'8'
'4'
'7'
'2'
'10'
'3'
'6'

Live Example

关于C++ 函数返回 int 到字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37146689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com