1
我有以下功能:迭代器不會在整個地圖迭代
void send_sequence_to_device(std::map<const string_t,device_t*> &msg2device_p, std::vector<response_t>& result_list, ushort num_attempts)
{
cout<<"sarit enter to send_seq_device"<<endl;
std::map<const string_t, device_t*>::iterator msg_itf;
for(msg_itf=msg2device_p.begin(); msg_itf!=msg2device_p.end(); msg_itf++)
{
cout<<"sarit enter to seq "<<msg_itf->first<<endl;
}
}
我調用這個函數的另一個功能:
void node_layer_manager_t::calc_ts_job_function()
{
vector<response_t> res;
map<const string_t, device_t*> getRegMsg={{"get_node_ts_est",&tx},{"get_node_ts_est",&rx},{"get_tx_num_clk_ts",&tx}};
cout<< "sarit ts clk function nlm first"<<endl;
send_sequence_to_device(getRegMsg,res);
}
我可以看到,循環迭代只有2而不是3 輸出是:
sarit enter to seq get_node_ts_est
sarit enter to get_tx_num_clk_ts
雖然我期待:
sarit enter to seq get_node_ts_est
sarit enter to seq get_node_ts_est
sarit enter to get_tx_num_clk_ts
'setRegMsg'的定義在哪裏?(這是你傳遞給''send_sequence_to_device()'函數的東西)? – TypeIA
你知道['std :: multimap'](http://en.cppreference.com/w/cpp/container/multimap)是幹什麼用的嗎? –