首页 > 编程语言 >C++ 从数组中拿值,每个值不相同

C++ 从数组中拿值,每个值不相同

时间:2023-02-08 22:36:17浏览次数:50  
标签:arr int C++ 索引 数组 中拿值 include

代码和思路

原理就是生成0,n个索引,每个索引不相同即可。
索引再到数组拿数据就行

#include <iostream>
#include <vector>
#include <random>

using namespace std;

default_random_engine e;// 生成随机整数

void extract(int len,vector<int> arr){
	uniform_int_distribution<int> u(0,arr.size() -1);
		
	vector<int> vic;
	bool exist = false;
	
	cout << "[ ";
	while(vic.size() != len){
		int num = lround(u(e));
		for(auto a: vic){
			if(a == num){
				exist = true;
			}
		}
		if(!exist){
			vic.push_back(num);	
			cout << num << ((vic.size() == len ) ? " ":",");
		}
		exist=false; // 每次执行完后需要初始化 
	}
	cout << "]"<< endl;
}

int main(){
	
	vector<int> a = {31,42,53,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
	for(int i = 0; i < 500;i++){
		extract(10,a);
	}

	
	return 0;
}

测试数据

image

标签:arr,int,C++,索引,数组,中拿值,include
From: https://www.cnblogs.com/pphboy/p/17103565.html

相关文章

  • 关于C++多态的学习
    父类virtualtypefuncname(arg);子类typefuncname(arg);typefuncnamearg完全一致就算子类重写了。覆盖了基类的func。还可以子类直接写个override example: typef......
  • 1.6通过地址和索引实现数组
       这一小节是表1-1中出现的基址寄存器和变址寄存器。通过这两个寄存器,我们可以对主内存上特定的内存区域进行划分,从而实现类似数组的操作。   首先,我们用十......
  • 一些c语言题和数组指针
    自学C语言第一题:念数字重点的几个步骤:如何分离一个数intmask=1; intt=a;//为了不改变a的大小,因为a还要参与后续的运算 while(t>9){ t/=10; mask*=10;}/......
  • C/C++ 数据结构链式队列的定义与实现
    #include<iostream>#include<Windows.h>usingnamespacestd;typedefstruct_QNode{intdata;struct_QNode*next;}QNode;typedefstruct{QNode......
  • 数组的常用方法 js 230208
    判断是否是数组头部操作头部添加头部删除尾部操作未位添加push未位删除pop排序sort方法,接收一个参数,完成排序reverse方法,反转查找indexOflastIndexOf转字符串数组拼字符串字......
  • 2021 第十二届蓝桥杯大赛软件赛决赛, 国赛,C/C++ 大学B 组
    概览答案提交:01-04直接做就行树不太确定,不过感觉是完全二叉树,贪了一个程序设计:06-10两个15分题,大小写是送的。123开始暴力,后来想到的前缀和优化,再后来想到了O(1)找到区块......
  • C++中缀表达式求值(中缀表达式转后缀表达式)
    problem给你一个中缀表达式,就是平常的算术式,比如这样的1+4/2*3+4求计算结果没有提交,我编几个样例把。【输入样例】:(((1)))(((1+1)))1+4/2*3+41+4/(2*3)+41+120/(20*3)+1【......
  • javaScript 高级语法 - 数组的forEach filter some,Object.defineProperty()添加对象属
    1.数组的forEach,filter,somevarnumberArray=[1,5,6,3,2,9,7,4,8];//遍历数组numberArray.forEach(function(value,index,array){console.log("当前值:"+value+"当......
  • java数组排序及查找方法
    前言在上一篇文章中,壹哥给大家讲解了数组的扩容、缩容及拷贝方式。接下来在今天的文章中,会给大家讲解更重要的数组排序及查找方法。今天的内容会有点难,希望你不要因此而退......
  • 多层嵌套的数组扁平化处理
    数组将多层嵌套的数组做扁平化处理例如:类似于将letarr=[1,2,3,[4,[5,6,[7],8]],9]处理成[1,2,3,4,5,6,7,8,9]方法一:递归functionflattenArr(arr){leta......