使用stringstream代替字符串?-C++; 我有一个家庭作业,用C++编写程序,但是我们不允许使用String类。但是,我们可以使用该库,包括stringstream。我在考虑使用stringstream,在这里我会使用string来构建我的类,从函数返回,等等

使用stringstream代替字符串?-C++; 我有一个家庭作业,用C++编写程序,但是我们不允许使用String类。但是,我们可以使用该库,包括stringstream。我在考虑使用stringstream,在这里我会使用string来构建我的类,从函数返回,等等,c++,string,iostream,C++,String,Iostream,你觉得这是个好主意吗?我应该注意的任何陷阱?您也可以使用vector。这是一个很好的替代字符串。正如Scott Meyers在其《有效STL》一书中所说:

你觉得这是个好主意吗?我应该注意的任何陷阱?

您也可以使用vector。这是一个很好的替代字符串。正如Scott Meyers在其《有效STL》一书中所说:

我认为使用stringstream可能会产生的主要问题是,它不是严格意义上的容器。我不确定是否可以在流中使用算法和其他常规STL内容。

您也可以使用vector。这是一个很好的替代字符串。正如Scott Meyers在其《有效STL》一书中所说:


我认为使用stringstream可能会产生的主要问题是,它不是严格意义上的容器。我不确定是否可以在流中使用算法和其他常规STL内容。

如果情况是没有字符串的商店数据库,您只需使用枚举即可

enum {
     Prod1,
     Prod2,
     Prod3
};
这意味着您可以将整数作为标识符传递,然后使用带有switch语句的print函数

void PrintProd(int product) {
    switch(product) {
         case Prod1: 
              cout << "Product 1" << endl;
              break;
         case Prod2:
              cout << "Product 2" << endl;
              break;
     // etc.
     }
}
void PrintProd(int产品){
交换机(产品){
案例1:

cout如果情况是一个没有字符串的商店数据库,那么只需使用枚举即可

enum {
     Prod1,
     Prod2,
     Prod3
};
这意味着您可以将整数作为标识符传递,然后使用带有switch语句的print函数

void PrintProd(int product) {
    switch(product) {
         case Prod1: 
              cout << "Product 1" << endl;
              break;
         case Prod2:
              cout << "Product 2" << endl;
              break;
     // etc.
     }
}
void PrintProd(int产品){
交换机(产品){
案例1:

从stringstream中获取内容的唯一方法是将其转换为字符串。这个问题很难回答,因为我们不知道您不允许使用字符串类的原因。任务的目的是找到一种聪明的方法来使用另一个标准类而不是字符串吗?还是您应该实现拥有字符串类?这是一个关于多态性的作业。我们正在建立一个商店数据库,其中存储产品和购物篮的列表。他们只是吝啬不让我们使用字符串。我想他们希望我们使用字符*或其他存储字符数组的方式。但我们可以自由地找到其他创造性的解决方案。@workmad3-Ca我不是直接发送到cout吗?或者发送到char或char[]或另一个stringstream吗?希望您只需要处理ASCII字符。考虑包装向量(或者您最终选择的任何内容)在您自己的string类中,从stringstream中获取内容的唯一方法是将其转换为字符串。这个问题很难回答,因为我们不知道您不允许使用string类的原因是什么。任务的目的是找到一种聪明的方法来使用另一个标准类而不是字符串吗?或者您是这样想的d来实现你自己的字符串类?这是一个关于多态性的任务。我们正在建立一个商店数据库来存储产品和购物篮的列表。他们只是吝啬不让我们使用字符串。我想他们希望我们使用char*或其他存储字符数组的方式。但是我们可以自由地找到其他创造性的解决方案选项。@workmad3-我不能直接将其发送到cout?或char或char[]或其他stringstream吗?希望您只需要处理ASCII字符。请考虑在您自己的字符串类中包装向量(或您最终选择的任何内容)