我如何创建嵌套的STL向量并关联两个类对象?目前我只考虑使用for循环遍历事务向量并比较ID,我认为这不是很有效。谢谢。我首选的实现方式是vector,我想存储用户购买的产品。许多用户都可以购买产品。
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.
}
答案 0 :(得分:0)
你的答案,如果你还没想到:
#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;
}
}
当然有很多方法可以插入和阅读表单地图,但它可以帮助你开始。