Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何根据另一个数组排列一个数组?_C++_Arrays_Sorting - Fatal编程技术网

C++ 如何根据另一个数组排列一个数组?

C++ 如何根据另一个数组排列一个数组?,c++,arrays,sorting,C++,Arrays,Sorting,假设我有两个数组 names[5]={a,b,c,d,e]; marks[5]={3,2,6,7,2}; 现在,我使用内置函数对marks数组进行排序。如何按照与marks数组相同的顺序排列names数组?使用STL中的std::pair生成一个数组(向量最好如下所示)。然后对成对数组进行排序。下面是一个例子(): #包括 #包括 #包括 #包括 使用名称空间std; int main() { 向量v; v、 推回({10,“约翰”}); v、 推回({5,“卡特琳娜”); 排序(v.b

假设我有两个数组

names[5]={a,b,c,d,e]; 

marks[5]={3,2,6,7,2}; 
现在,我使用内置函数对marks数组进行排序。如何按照与marks数组相同的顺序排列names数组?

使用STL中的std::pair生成一个数组(向量最好如下所示)。然后对成对数组进行排序。下面是一个例子():

#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
向量v;
v、 推回({10,“约翰”});
v、 推回({5,“卡特琳娜”);
排序(v.begin(),v.end());

对于(int i=0;i由于每个名称显然都与一个标记关联,因此通常需要创建一个包含一个名称及其关联标记的
struct

struct foo { 
    char name;
    int mark;
};
然后我们创建一个数组,其中包括:

foo marks[] = { { 'a', 3},
                { 'b', 2},
                { 'c', 6},
                { 'd', 7},
                { 'e', 2}
             };
然后我们对这些项目进行排序:

std::sort(std::begin(marks), std::end(marks),
          [](foo const &a, foo const &b) { return a.mark < b.mark; });

“YuHao,语言是C++。你尝试过什么代码?我没有尝试过。我不知道该怎么做。我想能够访问同一索引的人的姓名和标记(标记(1)是姓名的标记[1 ])。@ BeRouGrdsSyrySuthMuthaA。我是初学者,所以你能把代码作为例子,我知道使用它。
std::sort(std::begin(marks), std::end(marks),
          [](foo const &a, foo const &b) { return a.mark < b.mark; });
for (auto const &f : marks)
    std::cout << f.name << "\t" << f.mark << "\n";