C ++使用的std :: string - 为什么? [关闭]

问题描述 投票:-6回答:1

我本来想问,

如何字符串:: string的操作功能,我知道这是一个标准的构造函数,使用字符串,但什么操作吗?是否允许我使用乘法器操作者在结束了吗?为size_t表示对象和字符串的大小&是一个通过引用传递。如何这些概念说的吗?

#include <iostream>
#include <string>
using namespace std::literals::string_literals;

std::string operator*(std::size_t n, const std::string& s)
{
   std::string ret;
   while (n--)
       ret += s;
   return ret;
}

int main()
{
std::cout << 5 * std::string("Hallo") << std::endl;
std::cout << 5 * "Test"s << std::endl;
}

这是什么的std :: string RET的意思是,我可以使用它,因为性病:: string的?因为的std :: string已在年初被定义?

c++ string function stdstring
1个回答
1
投票

通过实施operator*,你允许类型size_t被“乘以”按类型string。乘以原因是加上引号,是因为你自己实现什么“正片叠底”的意思。在这个特定的实现中,string只是追加到自身n倍。

所以5 * std::string("Hallo")将导致HalloHalloHalloHalloHallo

© www.soinside.com 2019 - 2024. All rights reserved.