【问题标题】:How can I use unordered_map<string::iterator, string>?如何使用 unordered_map<string::iterator, string>?
【发布时间】:2022-08-17 20:03:39
【问题描述】:

我有一个具有以下签名的函数:

void findDotStars(unordered_map<string::iterator, string>& fp, string& p)

我得到C2280 编译器的错误。我需要存储指向字符串部分的指针。我认为我需要将迭代器转换为指针,但转换为哪个指针?

  • 这里没有足够的信息来提供帮助。请提供minimal reproducible example
  • 可能您不能将迭代器用作键。更何况,这是无稽之谈。

标签: c++ pointers stl


【解决方案1】:

std::string::iterator 类型是实现定义的,因此可能有也可能没有 std::hash 的特化。如果没有,那么你需要写一个。如果有,那么你不能写一个。

std::string::pointer 肯定会有一个特化,所以你可以使用它,尽管你必须小心迭代器等于字符串的end()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    相关资源
    最近更新 更多