gpt4 book ai didi

c++ - 在 C++ 模板中处理字符串

转载 作者:行者123 更新时间:2023-11-28 00:31:42 25 4
gpt4 key购买 nike

作为一些初学者 c++ 模板练习的一部分,我试图在 c++ 中编写一个模板作为 std::vector 的包装器,但我遇到了一个障碍。

假设我将使用的变量类型是 int、double 和 string。

我正在尝试编写一个循环来填充 vector :

type element;

while (element != 0){
std::cout << "Enter an element, use 0 to exit: ";
std::cin >> element;

if(element != 0)
items.push_back(element);
}

问题是,虽然这适用于 int 和 double,但不适用于 std::string,因为字符串不支持 !=。我还发现自己在计算 vector 中的最大/最小值时遇到了问题。

解决此问题的最佳方法是什么?

最佳答案

您可以提供一个可选的模板参数,它是一个比较器(我认为标准库经常这样做)。不那么雄心勃勃,您可以使用 type{} 来比较哪个应该适用于任何具有默认 ctor 的东西:if(element != type{})。 (您的问题不是字符串没有比较运算符,而是运算符未定义用于与整数进行比较)。

关于c++ - 在 C++ 模板中处理字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22650497/

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