我有一个长度为一百万的数据向量A(从0到一百万)。我想要创建一个向量B(长度为A的10%),包含A中的索引。这些索引是从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());
接下来,我将从采样索引中选择前10%的索引,以创建B。
srand
和random_shuffle
在C++11中都已被弃用。 - Konrad Rudolph