【发布时间】:2022-06-10 22:05:52
【问题描述】:
我想用函数生成带有随机名称的vector。
通常vector 声明自己并像这样使用。
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using std::cout;
using std::end;
using std::string;
using std::vector;
int main(){
int I_i{};
int64_t I64_VectorSize{};
string S_Word{};
static vector<string>Liste{};
Liste.push_back(S_Word);
I64_VectorSize = Liste.size();
for(I_i = 0; I_i < I64_VectorSize;++I_i){
cout << Liste[I_i] << end;
}
Liste.clear();
}
我想创建一个function 来创建一个带有随机名称的vector 列表
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using std::cout;
using std::end;
using std::string;
using std::generate_n;
string uniqueName(){
auto randchar = []() -> char{
const char charset[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
const size_t max_index = (sizeof(charset) - 1);
return charset[ rand() % max_index ];
};
string str(4,0);
std::generate_n( str.begin(), 4, randchar );
return str;
}
string generator_vector_with_custom_name(string Name){
/*....*/
//return VectorName;
}
int main(){
/*Random name*/
string Name = uniqueName();
/*call fonction to generate a vector name*/
//static vector<string>generator_vector_with_custom_name(Name){};
/*
to generate a vector with a custom name
static<string>Vjk{};
static<string>Rdl{};
static<string>NEs{};
....
*/
}
【问题讨论】:
-
你为什么要这个?当你想要“命名向量”时,考虑使用
struct foo { std::string s; std::vector<int> v; };或std::map<std::string,std::vector<int>> -
向量没有名字。只有变量有名称,程序运行时不能创建新变量。幸运的是,您还可以将矢量放在其他地方,例如地图内。
-
在您的示例中不清楚您希望在运行时确定的某个名称如何(或为什么)神奇地作为变量名称出现在您的代码中