在 C++ 中对结构中的类别进行排序

Sorting categories in structures in C++

我已经生成了具有更多参数的结构,其中之一称为 'category'。有 4 个独特的类别,然后它们被复制。我想要做的是将这 4 个独特的类别保存到字符串数组中,当我尝试将所有类别保存到包含很多重复项的数组中时。

void getCategories(financeStruct *financeData, unsigned int dataCount)
{
    string categ[dataCount];
    unsigned int i;
    bool doIt = true;
    for (unsigned int i = 0; i < dataCount; i++){
        for (unsigned int j = 0; j < dataCount; j++){
            if (categ[j] == financeData[j].name)
                continue;
            else
                categ[i] = financeData[i].name;
    }

我只想在我的数组中包含这些原始类别,这样当它发现重复项时就不会写入数组。

string categ[4];
for (unsigned int j = 0; j < dataCount; j++)
    for (unsigned int i = 0; i < 4; i++)
        if (categ[i] == financeData[j].name)
            break;  // Have it already
        else if ( categ[i] == "" ) {
            categ[i] = financeData[j].name;  // Checked all earlier ones without finding it
            break; }

这将存储遇到的前N个类别,只要N<=4。数组中的字符串都被初始化为 "",因此在搜索两者时找到的第一个 "" 指示应该使用的下一个位置,并告诉我们我们已经搜索了所有使用的位置。如果遇到类别太多,这段代码会默默忽略多余的部分。