値がベクトルの2つの構造体をマップに追加するときに問題が発生します。マップに構造体を追加するC++
std::map<Orders, std::vector<Items>> records;
for(std::vector<StdCardConfirmationReceipt>::iterator vIter= mvCardConfirmationReceiptList.begin(); vIter != mvCardConfirmationReceiptList.end(); ++vIter)
{
Orders order = {(*vIter).getOrderIdOrderCentral,(*vIter).getFulfillmentOrderIdOrderCentral};
Items item = {(*vIter).getItemIdOrderCentral,(*vIter).getLineItemIdOrderCentral, (*vIter).getItemFulfillmentStatusOrderCentral, (*vIter).getFulfillmentExceptionOrderCentral};
if (records.find(order) == records.end())
{
records.insert(std::make_pair(order,item));
//records[order];
//records[order].push_back(item);
}
else
{
records[order].push_back(item);
}
}
私は「ペア」または「make_pair」機能のいずれかで「records.insertを()」を使用しようとすると、それは私が本当に理解していないことを私は、このエラーが発生します。 'if-statment'のコメント行は機能しているようですが、新しいエントリをマップに挿入する正しい方法かどうかはわかりません。以下は、2つの構造体のコードです。
struct Orders
{
std::string sId;
std::string sFulfillmentOrderId;
};
struct Items
{
std::string sId;
std::string sLineItemId;
std::string sFulfillmentStatus;
std::string sFulfillmentException;
};
エラーは何ですか? –
ポップクイズ、読みやすくなったもの "for(std :: vector :: iterator vIter = mvCardConfirmationReceiptList.begin(); vIter!= mvCardConfirmationReceiptList.end(); ++ vIter)"または "for(auto&order :mvCardConfirmationReceiptList) "? –