为什么Python列表中的第一个元素为False但第二个元素为True?

时间:2018-10-30 10:07:58

标签: python arrays python-3.x boolean

当我阅读其他人的python代码时发现了这些东西:

#include <memory>
#include <unordered_map>
#include <iostream>

using namespace std;

class Node {};

typedef shared_ptr<Node> NodePtr;

struct HashFunction {
    unsigned long operator()(const NodePtr& key) const {
        return (unsigned long)key.get();
    }
};

struct EqualFunction {
    bool operator()(const NodePtr& t1, const NodePtr& t2) const {
        return t1.get() == t2.get();
    }
};

class Map
{
    unordered_map<NodePtr, int, HashFunction, EqualFunction> map;
public: 
    void insert(NodePtr nodeToInsert, int val)
    {
        map.insert({nodeToInsert, val });
    }

    bool exist(NodePtr node) {
        if (map.find(node) == map.end()) return false;
        return true;
    }
};

int main()
{
    Node node; Map map;
    auto nodePtr = make_shared<Node>(node);
    map.insert(nodePtr, 1);
    auto ptrToSameNode = make_shared<Node>(node);
    if (map.exist(ptrToSameNode)) 
        cout << "Node exists.";
        else cout << "Node doesn't exist.";
}

似乎数组“ ori”具有三个元素,我们可以使用False和True来索引第一个和第二个元素。这怎么可能发生,为什么?

0 个答案:

没有答案