Привет всем здесь некоторые части моих фрагментов кода., итерация над вектором вектора указателей
У меня есть класс Packet
Packet::Packet(
double sending_time,
uint32_t seq_no,
uint32_t size
)
я создаю вектор векторов (пакетов типа)
std::vector< std::vector<Packet*> > packets_for_tx_st
// Создание пакетов и толкающие пакеты
for (int j=0;j<params.num_hosts;j++){
for (uint32_t i = 0; i < params.num_packets_to_run; i++){
Packet *p1 = new Packet(start_time, i, 64); // Creating packets
packets_for_tx_stat[j].push_back(p1); // pushing packets
}
// Прочтите пакеты назад (чтение пакетов обратно, у меня есть проблемы здесь)
for(uint32_t i=0;i<params.num_hosts;i++){
for(uint32_t j = 0; j < packets_for_tx_stat[i].size(); j++){
std::cout<< packets_for_tx_stats[i][j]->seq_no << "\t" << packets_for_tx_stats[i][j]->start_time << "\t" << std::endl;
У меня возникла проблема на вышеуказанном шаге. Он вызывает следующую ошибку.
error: base operand of ‘->’ has non-pointer type ‘Packet’
Может кто-нибудь объяснить, что мне не хватает, и правильный способ печати вектора вектора (указателей) в приведенном выше случае.
Можете ли вы создать [минимальный, завершающий и проверяемый пример] (http://www.stackoverflow.com/help/mcve)? – Barry
Что-то рыбное с кодом. –
Компилятор говорит, что вы не показываете нам код, который он видит. –