提问者:小点点

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


为了学习起见,我试图将字典从python重新创建为C++。

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

    // 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返回类型是未来返回类型的占位符。

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


共1个答案

匿名用户

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

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

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

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(运算符|接受|c++|中|int|类型)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?