template <typename T> T& larger(T& a, T& b)
{
return (a>b?a:b);
}
std::string first {"vv"};
std::string second {"That is the question in californian"};
int main(){
std::cout << larger(first,second) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
这应该返回 [if a 大于 b , then a , else b ]; 但它为我返回了一个。(“vv”)这里出了什么问题>
operator<按字典顺序比较std::string. 这意味着它逐个字符地比较,从第一个开始,并且仅当它们相等时,才比较下一个。
正如您可以轻松验证的那样,它认为'v' > 'T'. 这是因为在 ASCII 编码中,小写字母在大写字母之后。
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |