2 个对象的 STL 嵌套向量

STL nested vector of 2 objects

本文关键字:嵌套 向量 STL 对象      更新时间:2023-10-16

如何创建一个嵌套的 STL 向量并关联两个类对象?目前我只想使用事务向量上的 for 循环并比较 ID,我认为这不是很有效。谢谢。我的首选实现方式是矢量,我想存储用户购买的产品。许多用户可以购买产品。

    class Products {
    public:
       int productID; // unique
       // product information variables
    };
    // User class
    class User {
    public:
        int userID;
        int productID;
// some more variables
    };
    int main() {
    // STL vector holding productID's purchased by the users.
    }
你的

答案,如果你还没有弄清楚:

#include <iostream>
#include <map>
using namespace std;
class Products {
public:    
    int _productID;
    Products(int productID):_productID(productID){}
    Products(){}
    bool operator < (const Products & product) const {
        return _productID < product._productID;
    }
};
class User {
public:
    int _userID;
    int _productID;
    User(int userId, int productID): _userID(userId), _productID(productID){}
    User(){}
};
int main() {
    map<Products,User> mapVariable;
    User user(1,1);
    Products product(1);
    // for inserting into map
    mapVariable.insert(make_pair(product,user)); //type 1
    mapVariable[product] = user;  // type 2
    // for reading values in loop
    for(auto mapElem: mapVariable){
        cout << "productID: " <<mapElem.first._productID << endl;
        cout << "userId: " << mapElem.second._userID << endl;
    }
}

当然,有很多方法可以插入和阅读表单地图,但它适合您的开始。