这是我的实现但是,分析文本文件时有点慢,有人有更好的想法或更好的数据结构来实现随机写入吗?我没有使用 STL 库,所以不用担心语法。而不是使用push_back,这里的vector使用.add
randomInteger 将在范围之间生成随机整数
如果可能的话,我想制作 2000 个字符;
我认为最慢的部分是逐字符读取文件?
void generateText(int order, string initSeed, string filename){
Map<string , Vector<char> > model;
char ch;
string key;
ifstream input(filename.c_str());
for(int i = 0; i < order; i++){
input.get(ch);
key+=ch;
}
while(input.get(ch)){
model[key].add(ch);
key = key.substr(1,key.length()-1) + ch;
}
string result;
string seed = initSeed;
for(int i = 0;i<2000;i++){
if (model[seed].size() >0) {
ch = model[seed][randomInteger(0, model[seed].size()-1)];
cout << ch;
seed = seed.substr(1,seed.length()-1) + ch;
}
else
return;
}
}