Как я могу создать вложенный вектор STL и связать два объекта класса? В настоящее время я только думаю об итерации с использованием цикла для вектора транзакций и сравнения идентификаторов, что я считаю не очень эффективным. Спасибо. Мой предпочтительный способ реализации - это вектор, и я хочу хранить приобретенные продукты. Продукты могут быть приобретены многими пользователями.
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 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;
}
}
конечно, есть много способов вставить и прочитать карту формы, но ее для вашего начала.