C++ 错误:无效使用';无效';(使用向量)

C++ 错误:无效使用';无效';(使用向量),c++,c++11,C++,C++11,我正在尝试使用vectors和其他c++11实用程序创建代码。上面提到的(标题上的)错误发生在我的代码中,尽管我在互联网上寻找了这个错误的解决方案,但我没有找到适合我的代码的东西。我试着做一些类型的铸件,但没有成功。下面我向您介绍代码中有争议的部分: #include <iostream> #include <ctime> #include <cstdio> #include <cstring> #include <cstdlib>

我正在尝试使用vectors和其他c++11实用程序创建代码。上面提到的(标题上的)错误发生在我的代码中,尽管我在互联网上寻找了这个错误的解决方案,但我没有找到适合我的代码的东西。我试着做一些类型的铸件,但没有成功。下面我向您介绍代码中有争议的部分:

#include <iostream>
#include <ctime>
#include <cstdio>
#include <cstring>
#include <cstdlib>  
#include <vector>
#include <map>
#include <algorithm>
#include <list>
//#include <Winbase.h>

using namespace std;

// A struct describing a product.
typedef struct Products
{
    string category;
    string name;
    float price;
} Product;

inline void scenario1(int num_cashiers)
{
    vector<Product> products; // It is a vector(a pseudo-second dimension) of products which will be used for each customer
    vector<vector<Product>> customers; // A vector containing all customers
    vector<vector<vector<Product>>> cashiers(num_cashiers); // A vector describing the supermarket cashiers declaring a queue of customers for each cashier
    double start = GetTickCount(); // It will be used for counting 10 secs until next update
    vector<int> total_products(num_cashiers); // A vector keeping the total number of products of each queue
    list<string> categories; // A list containing all the categories of the products
    list<float> categories_prices(categories.unique().size()); // A list containing all category prices
    //THE ABOVE LINE - THE LAST ONE IN THIS PART OF CODE - IS THE LINE I GET THE ERROR!!!
    ....

}
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
//#包括
使用名称空间std;
//描述产品的结构。
typedef结构产品
{
字符串类别;
字符串名;
浮动价格;
}产品;
内联作废场景1(整数出纳)
{
向量积;//它是产品的向量(伪二维),将用于每个客户
向量客户;//包含所有客户的向量
向量出纳(num_cashiers);//描述超市出纳为每个出纳声明客户队列的向量
double start=GetTickCount();//在下次更新之前,它将用于计数10秒
vector total_products(num_cashiers);//保持每个队列的产品总数的向量
列表类别;//包含产品所有类别的列表
列出类别价格(categories.unique().size());//包含所有类别价格的列表
//上面这一行——这部分代码的最后一行——就是我得到错误的那一行!!!
....
}
代码有什么问题


提前谢谢大家

list::unique是一个void函数,它不返回任何内容。在调用categories.unique().size()的最后一行中,您正在对一个空表达式调用.size()

那么,将
void
作为返回类型。你不能做任何进一步的去中心化吗?`阅读文档:@πάνταῥεῖ 我想要一份清单,它将为每一个类别保留超市顾客在他们的产品上花费的金额。但是,首先,我想为目录保留必要的空间。这个大小是类别列表的大小(其中包括超市拥有的所有可用产品类别的名称,并且这个列表是唯一的,我不喜欢重复的)。但我实现它是做错了什么。@Fredrarson我已经阅读了这个文档,那又怎样?你到底想让我考虑什么?@Jimbo_ai return typeSo,如果我先写categories.unique(),然后通过categories_prices为我的列表保留必要的空间。reserve(categories.size())这是一个解决方案吗?差不多<代码>唯一仅删除重复<代码>唯一性将把12343221变为12343221。但是如果你先对列表排序。。。。