小编Hum*_*Hum的帖子

查找向量中所有元素出现的索引

假设我有一个向量A = {1 0 1 1 0 0 0 1 0}.现在我想将所有出现的0的索引作为另一个向量返回B.

template< class InputIt, class T>
std::vector<int> IndicesOf(InputIt first, InputIt last, const T& value) {

}
Run Code Online (Sandbox Code Playgroud)

这是一个开始:

std::vector<int>::iterator iter = std::find_if(A.begin(), A.end(), 0);
B = std::distance(A.begin(), iter);
Run Code Online (Sandbox Code Playgroud)

c++ vector

12
推荐指数
1
解决办法
7449
查看次数

C++ 随机抽样的最佳方法

我有一个长度为 100 万(0 到 100 万)的数据向量 A。从 A 开始,我想创建包含 A 索引的向量 B(其长度可以说只是 A 的 10%)。这些索引是从 A 中随机抽取的样本索引。我尝试使用 srand() 和 random_shuffle,这是一个好方法吗?提取非常大的向量样本的方法?有人可以建议我吗?

  std::vector <int> samplingIndex;

   for (int i = 0; i < 1000000; ++i) { samplingIndex.push_back(i); } 
   std::srand(50); 
   std::random_shuffle(samplingIndex.begin(), samplingIndex.end());
Run Code Online (Sandbox Code Playgroud)

之后,我从采样索引中取出前 10% 的索引来制作 B。

c++ vector visual-c++

4
推荐指数
1
解决办法
1万
查看次数

生成两个具有90%相同元素的随机位数组

我必须生成两个随机位数组.要求是生成只有10%误码率的数组,即2个数组之间的元素比较应该给我们大约90%的元素.

我分别使用rand函数生成数组,它导致两个数组中大约40%到60%的相同元素.为了减少到10%,我试图在一个数组中找到随机位置以将其替换为1,但它会破坏随机性.它可能不是优雅的方式,对于大数字它不起作用(我需要测试数组中的10,000位).任何人都可以建议我如何生成两个错误非常少的随机二进制数组.

c++ visual-c++-2010

1
推荐指数
1
解决办法
153
查看次数

将contst char*数组中的某些数据部分复制到另一个const char*数组中

我能够将一些数据从char数组复制到循环中的另一个char数组中.例如,我想提取并显示char数组的每2个字符b.但它不起作用const char *.任何人都可以建议我为什么不与之合作const char *.其实我需要这样做const char*.

char array[] = "HelloRamBilasj";

cout << "total length of array buffer:" << strlen(array) << endl << endl;
int totalGoLength= strlen(array)/2 ; //divide by number of elements you want to display in one loop

cout << "required length of alice buffer:" << totalGoLength << endl << endl;

int oneGoCount=1;
int start=0;//starting index to copy
int next=2;//end index to copy

while( oneGoCount <= totalGoLength) {

    char *b = …
Run Code Online (Sandbox Code Playgroud)

c++ string visual-c++

0
推荐指数
1
解决办法
127
查看次数

标签 统计

c++ ×4

vector ×2

visual-c++ ×2

string ×1

visual-c++-2010 ×1