У меня есть карта, как это:STL: Доступ к данным из структуры, которая была добавлена в качестве второй пары к карте
typedef std::map<std::string, Copied_Instrument_Data> InternalIdWise_Copied_Instrument_Data;
где Copied_Instrument_Data
является структурой:
typedef struct
{
std::string type;
std::string marketListId;
std::string sectorCode;
std::string validToDate;
int notificationType;
bool npgFlag;
}Copied_Instrument_Data;
Я вставленные данные в моей карте с помощью:
InternalIdwise_Copied_Instrument_Data__Map.insert(std::pair<std::string, Copied_Instrument_Data >(internalId, CID));
Где CID является переменной в Copied_Instrument_Data
структуру.
Позже я использовал: iter = InternalIdwise_Copied_Instrument_Data__Map.find("SomeKeyString");
после объявлен iter
как это: InternalIdWise_Copied_Instrument_Data::iterator iter;
Тогда у меня есть:
if (iter != InternalIdwise_Copied_Instrument_Data__Map.end())
Instrument_available = true;
if (Instrument_available == true)
{
ins_todate = *(iter).second.validToDate;
std::cout<<ins_todate;
}
Как всегда, это не работает. Я не получаю никаких данных в ins_todate
.
Итак, мой вопрос:
Как правильно получить доступ к этому элементу?
Вы знаете, что в C++ вам не нужна 'typedef struct ...'? Идентификатор фактической структуры действует как тип. –
Вы действуете как 'if (condition) flag = true; if (flag) {... do stuff ...} 'Возможно, вы только что переместили этот блок, а не флаг, который вы знаете. –