在 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
。数组中的字符串都被初始化为 ""
,因此在搜索两者时找到的第一个 ""
指示应该使用的下一个位置,并告诉我们我们已经搜索了所有使用的位置。如果遇到类别太多,这段代码会默默忽略多余的部分。
我已经生成了具有更多参数的结构,其中之一称为 '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
。数组中的字符串都被初始化为 ""
,因此在搜索两者时找到的第一个 ""
指示应该使用的下一个位置,并告诉我们我们已经搜索了所有使用的位置。如果遇到类别太多,这段代码会默默忽略多余的部分。