Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.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++_Vector - Fatal编程技术网

C++ 如何:填充&;对新填充的向量进行排序?

C++ 如何:填充&;对新填充的向量进行排序?,c++,vector,C++,Vector,我想用随机元素填充一个向量,这些随机元素除了一个之外还会出现2次或更多次,然后对所述向量进行排序。 为了解释我这个问题的意思,我将给你们一个这类向量的例子: vector myVec={1,1,4,4,8,8,11,13,13} 用随机元素(例如1、4、8、11、13)填充它看起来非常随机 使除一个元素之外的每个元素出现两次(因此,请查看如何只有一次11的“迭代”) 从最小的数字到最大的数字排序 我已经以这种方式完成了步骤3: sort(myVec.begin(), myVec.end());

我想用随机元素填充一个向量,这些随机元素除了一个之外还会出现2次或更多次,然后对所述向量进行排序。 为了解释我这个问题的意思,我将给你们一个这类向量的例子:

vector myVec={1,1,4,4,8,8,11,13,13}

  • 用随机元素(例如1、4、8、11、13)填充它看起来非常随机
  • 使除一个元素之外的每个元素出现两次(因此,请查看如何只有一次11的“迭代”)
  • 从最小的数字到最大的数字排序
  • 我已经以这种方式完成了步骤3:

    sort(myVec.begin(), myVec.end());
    for(int i = 0; i < 9; ++i) {
        printf("%d", myVec[i]);
    }
    
    排序(myVec.begin(),myVec.end()); 对于(int i=0;i<9;++i){ printf(“%d”,myVec[i]); } 您将如何执行步骤1和2?某种myVec.insert或myVec.push_的诡计,我想不出来,或者有完全不同的方法吗

    我最初考虑的是myVec.push_back&两个for循环(int I=0;I取一个空向量
  • 用随机数填充(推回)(请参阅)
  • 现在做一个for循环,除了最后一个外,将剩余的部分推回 向量中的元素
  • 现在你可以把它分类了
  • 取一个空向量
  • 用随机数填充(推回)(请参阅)
  • 现在做一个for循环,除了最后一个外,将剩余的部分推回 向量中的元素
  • 现在你可以把它分类了

  • 由于您希望首先生成值,因此我们可以更高效地使用插入排序,而不是在最后进行排序

    #包括


    请注意,如果值分布小于要插入的元素数,此策略将无限循环。希望代码足够清晰,您可以更改以处理这种情况。

    由于您希望首先生成值,我们可以更高效地使用插入排序而不是排序最后

    #包括


    请注意,如果值分布小于要插入的元素数,则此策略将无限循环。希望代码足够清晰,您可以进行更改以应对这种情况。

    请显示您的代码。您的方法到底有什么问题?我们无法知道当无法插入时您会出现什么问题ee您的代码生成一个随机值。循环生成另一组随机值,但丢弃任何与第一个生成的值相等的值。复制该组(使每个值出现两次)。创建一个包含第一个单个值和两个复制集的向量。完成。由于任何真正随机或伪随机值都可以生成重复,因此将有一个出现一次的单个值,以及一组至少出现两次的“排序”随机值(每种情况实际上会出现偶数次,但这已经足够接近您的要求,并且足以提供免费建议)。请显示你的代码。你的appraoch到底有什么问题?当我们看不到你的代码生成一个随机值时,我们无法知道你弄糟了什么。循环生成另一组随机值,但丢弃任何与第一个生成的随机值相等的值。复制该集(因此每个值出现两次)。创建一个包含第一个单个值和两个复制集的向量。完成。由于任何真正随机或伪随机值都可以生成重复,因此将有一个出现一次的单个值,以及一组至少出现两次的“排序”随机值(每种情况实际上会出现偶数次,但这已经足够接近您的要求,并且足以提供免费建议)。@πάνταῥεῖ 在stackoverflow编辑器中,如何在以“\n”形式编写答案时添加行。如果要在不打开新段落的情况下继续一个句子,请在要继续的行末尾添加两个空格,请按ENTER键并继续在下一行中编写。这也在高级编辑帮助部分的换行符中进行了说明。@πάνταῥεῖ 如何在stackoverflow编辑器中以“\n”形式编写答案时添加行。如果要在不打开新段落的情况下继续一个句子,请在要继续的行末尾添加两个空格,请按ENTER键,然后继续在下一行中编写。高级编辑帮助部分“换行符”中也介绍了这一点。