繁体   English   中英

运算符 [] 是否接受 C++ 中的整数以外的类型?

[英]Does the operator [] accepts types other than ints in C++?

为了学习,我正在尝试将Dictionary从 python 重新创建到 C++ 中。

我希望能够将下标运算符 [] 与keyType一起使用(这是字典中键的数据类型,可能是 int、string ... 等),我尝试了这种方法(我使用的是 linked列表):

    // keyFind is the value to be found
    void operator[](keyType keyFind) {
        typeList* trav; // typeList is an alias for: linked_list<keyType, valType>
        for (trav = head; trav != nullptr; trav = trav->next) {
            if (trav->key == keyFind) {
                cout << trav->val << endl;
                break;
            }
        }
    }

void返回类型是未来返回类型的占位符。

我的问题是:我应该使用这种方法还是应该简单地使用普通的 function 代替,哪一种被认为是最佳实践

运算符 [] 是否接受 C++ 中的整数以外的类型?

运算符重载只是函数,它们可以像其他函数一样接受任何参数类型。 所以,是的。

C++ 标准库已经提供了std::unordered_mapstd::map ,它们在大多数情况下类似于 Python 字典。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM