在C++中生成字符串的随机向量
Generating a random vector of strings in C++
我的函数有一个问题,它应该生成随机字符串的向量。但是,我得到的只是向量中的第一个元素是随机的,其余的都是空的。代码如下:
void losuj(vector <string> &vec, int ile){
int i, j;
string str;
stringstream ss;
char c;
for(i=0; i<ile; i++){
for(j=0; j<5; j++){
c= rand()%25 + 97;
ss << c;
}
ss >> str;
vec.push_back(str);
ss.str().clear();
str.clear();
}
}
关于可能出现什么问题的任何想法?
首先,正如WhozCraig所说,你不需要在这里使用stringstream
。 std::string
提供您需要的一切。
代码不起作用的原因是您的eof
位是通过operator>>
设置的。调用 stringstream::clear()
将重置位并使流再次可用。
这是您的代码,稍作修改,工作正常。我还添加了托马斯·马修斯建议的修复程序:
void losuj(vector <string> &vec, int ile)
{
int i, j;
string str;
char c;
for(i=0; i<ile; i++)
{
for (j=0; j<5; j++)
{
c = rand() % 26 + 'A';
str += c;
}
vec.push_back(str);
str.clear();
}
}
您必须重置字符串流的状态,因为您已达到eof
:
ss.clear();
相关文章:
- 如果不初始化结构中的向量,它会自动为空还是具有随机内存位置的值?
- 指向用随机指针归档的其他类对象的指针的c++向量
- 我怎样才能在不重复的情况下随机迭代向量的每个元素
- 从长(且合理)稀疏向量中选择随机元素的最有效方法是什么?
- C++ 生成随机向量
- 随机访问元组向量中的元组值
- 将一个随机的字符序列和int序列解析为单独的向量
- 从C++向量中随机选取
- C++线程的向量在连接时随机崩溃
- C 从向量的子集返回一个随机值
- 使用随机值初始化 2D 向量
- 多次随机向量后的读取访问冲突
- 随机采样C++中具有权重的元组的向量
- 如何使用 std::shuffle 以随机顺序对具有唯一指针的向量进行洗牌
- 从另一个向量制作随机配对向量
- 在C++中生成字符串的随机向量
- 在matlab上生成有限制的随机向量时出现问题
- 每次调用一个新的随机向量
- 标准多元正态随机向量使用Boost::random
- 生成带有 t 个随机向量的位向量