C++ 怎么能ı;排序字符串及其在c+中对应的整数+;?
Helloı有一个包含actornames的字符串向量(favseries)。和ı创建三个向量来存储计数(向量计数),存储参与者(向量参与者),如果每个参与者都有一次,则存储参与者(向量唯一参与者);ı希望找到actorname的计数,并显示每个actorname的计数,计数从高到低排序,如果计数相同,则显示从“A”到“Z”的排序字符串 我的字符串向量包括:C++ 怎么能ı;排序字符串及其在c+中对应的整数+;?,c++,C++,Helloı有一个包含actornames的字符串向量(favseries)。和ı创建三个向量来存储计数(向量计数),存储参与者(向量参与者),如果每个参与者都有一次,则存储参与者(向量唯一参与者);ı希望找到actorname的计数,并显示每个actorname的计数,计数从高到低排序,如果计数相同,则显示从“A”到“Z”的排序字符串 我的字符串向量包括: WENTWORTH MILLER FREYA ALLAN YASEN ATOUR BASIL EIDENBENZ ANYA CHA
WENTWORTH MILLER FREYA ALLAN YASEN ATOUR BASIL EIDENBENZ ANYA CHALOTRA
BRYAN CRANSTON RAINN WILSON WENTWORTH MILLER LESLIE DAVID BAKER BRYAN CRANSTON ANYA CHALOTRA YASEN ATOUR
以下是输出必须为:
ANYA CHALOTRA: 2
BRYAN CRANSTON: 2
WENTWORTH MILLER: 2
YASEN ATOUR: 2
BASIL EIDENBENZ: 1
FREYA ALLAN: 1
LESLIE DAVID BAKER: 1
RAINN WILSON: 1
我的输出是排序部分中称为矢量超出范围的错误。另外,当我的输出没有给出任何错误时,它根据第0个索引像没有排序的字符串一样打印,并且一个参与者被打印了两次,计数为1。例如:
ANYA CHALOTRA: 1
BRYAN CRANSTON: 1
WENTWORTH MILLER: 1
YASEN ATOUR: 1
BASIL EIDENBENZ: 1
YASEN ATOUR: 1
ANYA CHALOTRA: 1
BRYAN CRANSTON: 1
WENTWORTH MILLER: 1
FREYA ALLAN: 1
LESLIE DAVID BAKER: 1
RAINN WILSON: 1
代码如下:
vector <string> actors;
vector <int> counts;
vector <string> uniqueactors;
int count;
for ( int i = 0; i < favSeries.size(); i++) {
for ( int j = 0; j < favSeries[i].actorNames.size(); j++) {
count = 1;
counts.push_back(count);
actors.push_back(favSeries[i].actorNames[j]);
}
}
uniqueactors.push_back(actors[0]);
for ( int i = 0; i < actors.size(); i++ ) {
bool check = true;
for ( int j = 0; j < uniqueactors.size(); j++ ) {
if ( uniqueactors[j] == actors[i] ) {
counts[j] += 1;
check = false;
}
}
if (check) {
uniqueactors.push_back(actors[i]);
}
}
for ( int i = 0; i < uniqueactors.size() - 1; i++) {
int minindex = i;
for (int j = i + 1; j < uniqueactors.size(); j++) {
if (actors[minindex].at(0) > uniqueactors[j].at(0)) {
minindex = j;
}
}
string temp = uniqueactors[i];
uniqueactors[i] = uniqueactors[minindex];
uniqueactors[minindex] = temp;
int temp1 = counts[i];
counts[i] = counts[minindex];
counts[minindex] = temp1;
}
for ( int i = 0; i < counts.size() - 1; i++) {
int minindex = i;
for (int j = i + 1; j < counts.size(); j++) {
if( counts[minindex] > counts[j] ) {
minindex = j;
}
}
int temp1 = counts[i];
counts[i] = counts[minindex];
counts[minindex] = temp1;
string temp = uniqueactors[i];
uniqueactors[i] = uniqueactors[minindex];
uniqueactors[minindex] = temp;
}
for ( int i = 0; i < uniqueactors.size(); i++ ) {
cout << uniqueactors[i] << ":" << count << endl;
}
}
vector<pair<string, int>> v;
sort(v.begin(), v.end(), [](auto a, auto b){
if(a.second > b.second){
return a.second > b.second;
} else {
return a.first > b.first;
}
});
vectors;
病媒计数;
向量唯一因子;
整数计数;
对于(inti=0;iuniqueactors[j].at(0)){
minindex=j;
}
}
字符串温度=唯一参与者[i];
唯一参与者[i]=唯一参与者[minindex];
唯一演员[minindex]=临时演员;
int temp1=计数[i];
计数[i]=计数[minindex];
计数[minindex]=temp1;
}
对于(int i=0;i计数[j]){
minindex=j;
}
}
int temp1=计数[i];
计数[i]=计数[minindex];
计数[minindex]=temp1;
字符串温度=唯一参与者[i];
唯一参与者[i]=唯一参与者[minindex];
唯一演员[minindex]=临时演员;
}
对于(int i=0;ialgorithm
中的sort()
vector<int> v;
sort(v.begin(), v.end(), [](int a, int b){
return a < b;
})
您可以在stl中使用algorithm
中的sort()
vector<int> v;
sort(v.begin(), v.end(), [](int a, int b){
return a < b;
})
最简单的答案是将参与者名称和参与者计数一起存储在一个结构向量中。然后,当您对该向量进行排序时,参与者和他们的计数会一起排序。将参与者和计数存储在单独的向量中会使生活变得艰难。我的类cpp文件中有一个结构。ı无法将新结构添加到我的类cpp文件中。cupper中的ode是一个类的一部分,它是一个名为printFavoriteActor的函数。也是的,我想先对它们的出现进行排序,然后将第0个索引从“a”命名为“Z”。请在问题中包括家庭作业约束,你说你不能使用
,也不能使用开始()
或排序()
?能否使用多集和基于范围的for循环?是的,我们可以使用选择排序和交换方法进行排序,其余部分是关于存储这些actornames及其计数的向量。actornames和counts是不同的向量。存储actornames另一个向量,与其名称对应的计数是另一个向量。最简单的answer是将参与者名称和参与者计数一起存储在一个结构向量中。然后,当您对该向量进行排序时,参与者和他们的计数一起进行排序。将参与者和计数存储在单独的向量中会使生活变得艰难。我的类cpp文件中有一个结构。ı无法向我的类cpp文件中添加新的结构。upper中的代码是类的一部分及其一个名为printFavoriteActor的函数。也是的ı要首先对它们的出现进行排序,然后将第0个索引从“a”命名为“Z”。请在问题中包括作业约束,您说过您不能使用
,也不能使用开始()
或排序()
?您可以使用多集和基于范围的for循环吗?是的,我们可以使用选择排序和交换方法进行排序,其余部分是关于存储这些actornames及其计数的向量。actornames和counts是不同的向量。存储actornames另一个向量,对应于其名称的计数是另一个向量。实际上,ı可以不使用algorithm header或begin()、sort()函数。这是被禁止的。ı只需要使用选择排序方法进行排序。您仍然可以将它们配对并尝试添加适当的比较条件。这不会那么复杂。试一试。实际上,ı不能使用algorithm header或begin()、sort()函数。这是禁止的。ı只需要使用选择排序方法进行排序。您仍然可以将它们配对并尝试添加适当的比较条件。不会那么复杂。试一试。