leveldb::DB* db;    leveldb::Options options;    options.create_if_missing = true;    leveldb::Status status = leveldb::DB::Open(options,"/tmp/testdb", &db);    assert(status.ok());    //write key1,value1    std::string key="key";    std::string value = "value";    status = db->Put(leveldb::WriteOptions(), key,value);    assert(status.ok());    status = db->Put(leveldb::WriteOptions(), key,"hello");    assert(status.ok());    status = db->Get(leveldb::ReadOptions(), key, &value);    assert(status.ok());    std::cout<
<
Put(leveldb::WriteOptions(),key2,value);    assert(status.ok());    status = db->Delete(leveldb::WriteOptions(), key);    assert(status.ok());    status = db->Get(leveldb::ReadOptions(),key2, &value);    assert(status.ok());    std::cout<
<<"==="<
<
Get(leveldb::ReadOptions(),key, &value);    if(!status.ok()) std::cerr<
<<"  "<
<
<
<<"==="<
<
NewIterator(ro);    if (iter == NULL)    {        return false;    }    iter->SeekToLast();//last的key最大,这里是自己定义的比较函数按key排序    if (!iter->Valid())    {        //数据库为空        itoa(1, chKey, 10);//key从1开始    }    else    {        leveldb::Slice sliceKey;        sliceKey=iter->key();        HPR_INT32 nKey=0;        nKey=atoi(sliceKey.data());        nKey++;        itoa(nKey,chKey,10);    }    delete iter;//切忌在使用完sliceKey之前删除iter    leveldb::Status s = m_pDB->Put(wo,chKey,leveldb::Slice(chTmp,nLen));    delete[] chTmp;    if (!s.ok())    {             return false;    }    cout<<"存入一条数据 index:"<
<
nb)        {            return +1;        }        return 0;    }    // Ignore the following methods for now:    const char* Name() const { return "DBComparator"; }    void FindShortestSeparator(std::string*, const leveldb::Slice&) const { }    void FindShortSuccessor(std::string*) const { }};