倒排索引是一种用于搜索引擎和信息检索系统中的数据结构，可以用于快速查找包含特定单词的文档。C++可以使用STL的数据结构来实现一个简单的倒排索引。

以下是一个基于哈希表的倒排索引实现：
```cpp
#include <iostream>
#include <unordered_map>
#include <vector>

using namespace std;

int main() {
    unordered_map<string, vector<int>> inverted_index;

    // Add documents to the inverted index
    inverted_index["apple"].push_back(1);
    inverted_index["banana"].push_back(1);
    inverted_index["banana"].push_back(2);
    inverted_index["cherry"].push_back(2);
    inverted_index["cherry"].push_back(3);
    inverted_index["cherry"].push_back(4);

    // Search for documents containing a particular word
    string query = "cherry";
    auto result = inverted_index.find(query);
    if (result != inverted_index.end()) {
        cout << "Documents containing '" << query << "':" << endl;
        for (int doc_id : result->second) {
            cout << "  " << doc_id << endl;
        }
    } else {
        cout << "No documents containing '" << query << "'." << endl;
    }

    return 0;
}
```
在上面的代码中，我们使用了一个unordered_map来存储每个单词及其出现的文档列表。每个单词对应一个vector，其中存储了出现该单词的文档的编号。当我们搜索某个单词时，我们只需要在哈希表中查找该单词，然后遍历对应的文档列表即可。

在实际应用中，倒排索引需要支持更复杂的查询，例如短语查询、通配符查询和布尔查询等。为了实现这些功能，可能需要使用更高级的数据结构或算法。
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence