【发布时间】:2016-01-13 02:34:30
【问题描述】:
所以我创建了一个包含产品对象的向量。 该产品有一个 int ID、字符串制造商和字符串产品名称。 假设我通过这样做存储了一些产品
vector<product*>productlist;
Product*p = new Product(123, "Sony", "C vaio laptop")
Product*p1 = new Product(1234, "LG", "D 54 inch TV")
Product*p2 = new Product(1235, "Lays", "A potato chips")
productlist.push_back(p);
productlist.push_back(p1);
productlist.push_back(p2);
我有一个名为 getproductname(){return productname;} 的方法,可用于获取产品名称,并且可以对产品名称进行排序,但之后我不知道如何继续,因为我不知道如何按产品名称的字母顺序打印整个对象。
现在我想按 productname 的字母顺序对 3 个产品进行排序/打印。我该怎么做(排序部分)? 示例输出:
产品按字母排序
产品 ID1:1235
产品制造商:莱士
产品名称:薯片//名称以A开头,所以它是第一个输出
产品 ID2:123
产品制造商:索尼
产品名称:C vaio 笔记本电脑
产品 ID3:1234
产品制造商:LG
产品名称:D 54寸电视//名称以D开头,所以是最后一个
我尝试插入 sort(productlist.begin(), productlist.end());但它只适用于带有字符串的向量而不是对象。
一开始问的问题太模糊/简单。已编辑!
【问题讨论】:
-
您是将指针存储在向量中还是实际对象中?
-
您使用指针是否有原因,或者您可以将
Product对象直接存储在 vector 中吗? -
我有一个构造函数 product(int id, string manuf, string productname) 我将产品对象存储到向量中
-
但是你使用指针有什么原因吗?为什么不只是
std::vector<Product> products? -
我猜它指向我的产品类别?我很抱歉,但我什至不知道它是如何工作的。我参考了我的讲师过去给出的一个例子,他就是这样做的。
标签: c++