【问题标题】:Deleting and object in a position from a deque从双端队列中删除和对象
【发布时间】:2012-07-27 20:32:18
【问题描述】:

我有这个代码:

 bool tuple_compare(boost::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool> &tuple_from_done)
  {
  for(int i = 0; i < deque_wait.size(); i++) {

      boost::tuple<ppa::Node*, ppa::Node*, ppa::Node*, bool> tuple_from_wait = deque_wait.at(i);
      ppa::Node *father = boost::get<0>(tuple_from_wait);
      ppa::Node *son = boost::get<0>(tuple_from_wait);
      ppa::Node *second_son = boost::get<2>(tuple_from_wait);

      bool has_seq = boost::get<3>(tuple_from_wait);

      cout << "checking this two " << boost::get<1>(tuple_from_wait)->get_name() <<  " bool sequence "
              <<  boost::get<1>(tuple_from_wait)->node_has_sequence_object  << " and this " 
              << boost::get<2>(tuple_from_wait)->get_name() << " bool seq " <<  boost::get<2>(tuple_from_wait)->node_has_sequence_object
              << " with " << boost::get<0>(tuple_from_done)->get_name() << endl;

      if(boost::get<0>(tuple_from_done)->get_name() == boost::get<1>(tuple_from_wait)->get_name()
              || boost::get<0>(tuple_from_done)->get_name() == boost::get<2>(tuple_from_wait)->get_name())
      {
         cout << " found in here this we need to check if there is something if the sons have a sequences!!!! " << endl; 

         if(boost::get<1>(tuple_from_wait)->node_has_sequence_object == true && boost::get<2>(tuple_from_wait)->node_has_sequence_object == true) 
         {
             cout << " ding, ding, we have one ready!!!" << endl;

             return true;
         }
         else
         {
             cout << "not ready yet" << endl;
         }

        }    

       }

  return false;

}

现在我需要删除在“叮,叮”行中找到的对象,但我不知道该怎么做,我知道迭代器使用得很好我实际上必须从deque_wait中删除这个元组并将其移至deque_run,但我还不太了解,所以你能帮我吗,谢谢。

【问题讨论】:

    标签: c++ iterator deque erase


    【解决方案1】:
    deque_wait.erase(deque_wait.begin() + i);
    //               ^^^^^^^^^^^^^^^^^^^^^^
    //               that's an iterator
    

    deque支持随机访问迭代器,它很像指针(其实指针是随机访问迭代器的一种),所以你可以直接获取begin迭代器并在其上加上一个整数得到偏移量,就像你可以用指针做的那样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-07
      • 2016-01-19
      • 2011-08-12
      • 2018-07-02
      • 2011-07-20
      • 2020-09-03
      • 2015-03-31
      相关资源
      最近更新 更多