根据用户输入创建结构
creating structres based on the users input
我想知道是否有一种方法可以根据用户的输入创建不同的结构。例如,考虑以下代码
#include <iostream>
#include <algorithm>
#include <string>
#include <iomanip>
#include <limits>
#include <stdio.h>
#include <sstream>
using namespace std;
using std::stringstream;
struct rootset {
double totSize;
const char *rStrtPtr;
const char *rEndPtr;
struct generations {
double totSize;
const char *genStrtPtr;
const char *genEndPtr;
int numOfGen;
string genName;
struct object {
double objSize;
const char *objStrtPtr;
const char *objEndPtr;
string id;
char markBit;
char objPtr;
struct freeList {
double freeSpace;
int flNumb;
};
};
} generation;
};
int main()
{
int gen =0;
cin >> gen;
rootset* pRootSet = (rootset*)malloc(1200);
for( i=0; i<gen; i++) {
stringstream out;
out << i;
string s = out.str();
string foo = "generation" + s;
rootset::generations foo;
}
}
这里用户输入一个数字。在此基础上,我想创建许多结构。但我不能这样做。请帮助。我意识到foo是字符串类型,我不能使用这个答案。
如果可以避免的话,您可能不希望使用 malloc
(在这种情况下,您可以很容易地做到这一点)。
std::vector
,它将给出如下代码:
int gen;
if (cin >> gen) {
std::vector<rootset> rootsets(gen);
// code that uses `rootsets` goes here.
}
这将分配gen
不同rootset
对象的向量(大致类似于数组)。你也可以用malloc
做到这一点,但相比之下,它是笨拙和困难的(如果你试图使它异常安全,那就会变得更加笨拙和困难——在你完成之前,你几乎重新发明了std::vector
)。
相关文章:
- 创建结构的数组时遇到分段错误
- 如何在 c++ 中创建结构向量的映射
- 为什么我们再次从结构对象创建结构变量?
- 如何在C++中为堆栈动态创建结构?
- 如何创建结构的结构结构,等等嵌套多个结构?
- 创建结构作为枚举类成员
- 第一次尝试使用new动态创建结构数组,程序挂起没有错误
- 创建结构体向量,表达式:向量下标超出范围
- variadic宏来创建结构
- C++类中创建结构的向量
- 如何动态创建 C++ 结构
- 如何在C++循环中创建结构成员
- 如何读取文件中的数据并创建结构向量
- C++从 DLL 创建结构
- 动态数组添加元素而不创建结构变量/对象
- 创建结构并传递IT功能
- c ++ 当我创建结构数组时,如何使用结构数组内的类的参数调用构造函数
- 尝试创建结构对象,在位置0x3FE00000中创建访问冲突写入错误
- 如何创建结构类型数组的地图对象
- 在C 中创建结构数组