我有一个示例文件,其中一行如下所示:CAR;FORD;FIESTA;WHITE;20300;19900;23555
现在我需要解析这一行,其中前四个属性应该单独存储,最后三个(或更多)需要计算平均值 (“选择正确的方法”正在进行中……)
当我成功将其标记化后,我需要将这些标记传递给一个类,该类对每个属性都有一个单独的(公共(public))变量
class ClassA{ //aggregate class
public:
string vehicle;
string brand;
string model;
string color;
double avgPrice;
//...
};
什么是最合适的方法?
标记化时,我应该将所有标记存储在一个数组中,然后传递给 数组作为参数,然后将初始化列表添加到
ClassA
构造函数,其中我将每个相应的Arr[n]
分配给 一个属性?或者我应该为每个属性创建一个临时变量,然后 然后执行标准初始化列表。但这会使 非常笨拙的代码,我不得不重复同样的事情 4 每次将 token 存储在不同的变量中。
欢迎提供更好的解决方案,因为我只是 C++ 的初学者,我对其功能的了解很基础。
最佳答案
对我来说有两种解决方案:
- 你的类解析字符串
- 您的类(class)刚刚接收到 token ,并且解析较早完成。
通常,类的属性必须是私有(private)的,甚至是 protected 。但是在类外部直接访问这些属性可以避免类控制值的输入和输出。
如果你的类(class)专门用于解析,那么解决方案 1 对我来说是最好的。 否则,更喜欢第二种解决方案:只需解析您的字符串并在您的类(甚至构造函数)的函数中给出一个字符串 vector 作为参数。
关于c++ - 解析字符串并将标记作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26466614/