• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ pop_front函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中pop_front函数的典型用法代码示例。如果您正苦于以下问题:C++ pop_front函数的具体用法?C++ pop_front怎么用?C++ pop_front使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了pop_front函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: pop_front

void EnhancedLinkedList<T>::remove_first(const T& key) {
    if (head != NULL) {
        if (head->getData() == key) {
            pop_front();
            return;
        }

        Node<T> *current = head;
        Node<T> *previous = head;

        while (current != NULL) {
            if (current->getData() == key) {
                if (current->getData() == key) {
                    pop_front();
                    return;
                } else {
                    previous->getNext() = current->getNext();
                    delete current;
                    count--;
                    current = previous->getNext();
                    return;
                }
            } else {
                previous = current;
                current = current->getNext();
            }
        }

        if (tail->getData() == key) {
            pop_back();
        }
    }
}
开发者ID:trofimovilya,项目名称:SSD5,代码行数:33,代码来源:EnhancedLinkedList.cpp


示例2: moveDownward

void moveDownward(Queue * q) {

    Node * head;
    GLfloat timer;
    if (q != NULL) {
        head = q->head;
        while (head != NULL) {
            if (head->circle.movable == TRUE) {
                head->circle.y += head->circle.yVector * SPEED;
            }
            head = head->next;
        }

        head = q->head;
        timer = glfwGetTime();
        if (head != NULL) {
            if (head->circle.y < 0 - RADIUS) {
                pop_front(q);
            } else if (head->circle.fadeAway == TRUE
                    && head->circle.invisibleStartTime > 0
                    && timer - head->circle.invisibleStartTime > ALPHA_TIME) {
                pop_front(q);
            }
        }
    }
}
开发者ID:liamwilt,项目名称:colourS,代码行数:26,代码来源:ax.c


示例3: reorder_for_dropping

// Prepares items for dropping by reordering them so that the drop
// cost is minimal and "dependent" items get taken off first.
// Implements the "backpack" logic.
std::list<act_item> reorder_for_dropping( const player &p, const drop_indexes &drop )
{
    auto res  = convert_to_items( p, drop, -1, -1 );
    auto inv  = convert_to_items( p, drop, 0, INT_MAX );
    auto worn = convert_to_items( p, drop, INT_MIN, -2 );

    // Sort inventory items by volume in ascending order
    inv.sort( []( const act_item & first, const act_item & second ) {
        return first.it->volume() < second.it->volume();
    } );
    // Add missing dependent worn items (if any).
    for( const auto &wait : worn ) {
        for( const auto dit : p.get_dependent_worn_items( *wait.it ) ) {
            const auto iter = std::find_if( worn.begin(), worn.end(),
            [ dit ]( const act_item & ait ) {
                return ait.it == dit;
            } );

            if( iter == worn.end() ) {
                worn.emplace_front( dit, dit->count_by_charges() ? dit->charges : 1,
                                    100 ); // @todo: Use a calculated cost
            }
        }
    }
    // Sort worn items by storage in descending order, but dependent items always go first.
    worn.sort( []( const act_item & first, const act_item & second ) {
        return first.it->is_worn_only_with( *second.it )
               || ( ( first.it->get_storage() > second.it->get_storage() )
                    && !second.it->is_worn_only_with( *first.it ) );
    } );

    units::volume storage_loss = 0;                        // Cumulatively increases
    units::volume remaining_storage = p.volume_capacity(); // Cumulatively decreases

    while( !worn.empty() && !inv.empty() ) {
        storage_loss += worn.front().it->get_storage();
        remaining_storage -= p.volume_capacity_reduced_by( storage_loss );

        if( remaining_storage < inv.front().it->volume() ) {
            break; // Does not fit
        }

        while( !inv.empty() && remaining_storage >= inv.front().it->volume() ) {
            remaining_storage -= inv.front().it->volume();

            res.push_back( inv.front() );
            res.back().consumed_moves = 0; // Free of charge

            inv.pop_front();
        }

        res.push_back( worn.front() );
        worn.pop_front();
    }
    // Now insert everything that remains
    std::copy( inv.begin(), inv.end(), std::back_inserter( res ) );
    std::copy( worn.begin(), worn.end(), std::back_inserter( res ) );

    return res;
}
开发者ID:ProfoundDarkness,项目名称:Cataclysm-DDA,代码行数:63,代码来源:activity_item_handling.cpp


示例4: checkpile

void checkpile(int *pile){
    if(pile[0] < 3){
        return;
    } else if(checkvalid(pile[1], pile[2], pile[pile[0]])){
        push_back(pile[1], deck);
        push_back(pile[2], deck);
        push_back(pile[pile[0]], deck);
        pop_front(pile);
        pop_front(pile);
        pop_back(pile);
        checkpile(pile);
    } else if(checkvalid(pile[1], pile[pile[0]-1], pile[pile[0]])){
        push_back(pile[1], deck);
        push_back(pile[pile[0]-1], deck);
        push_back(pile[pile[0]], deck);
        pop_front(pile);
        pop_back(pile);
        pop_back(pile);
        checkpile(pile);
    } else if(checkvalid(pile[pile[0]-2], pile[pile[0]-1], pile[pile[0]])){
        push_back(pile[pile[0]-2], deck);
        push_back(pile[pile[0]-1], deck);
        push_back(pile[pile[0]], deck);
        pop_back(pile);
        pop_back(pile);
        pop_back(pile);
        checkpile(pile);
    } else {
        return;
    }
}
开发者ID:pandix73,项目名称:Advanced_Programming,代码行数:31,代码来源:103062135_246.c


示例5: testQ

void testQ()
{
    std::cout << "Test Lazy Queue\n";

    Queue<int> q0;
    auto q1 = q0.push_back(10);
    printQ(q1);
    auto q2 = q1.push_back(20);
    printQ(q2);
    auto q3 = q2.push_back(30);

    std::cout << "Three element queue\n";

    printQ(q3);
    auto x = q3.front();
    std::cout << "Pop: " << x << std::endl;
    printQ(q3);
    std::cout << "Tail\n";
    auto t1 = q3.pop_front();
    printQ(t1);
    std::cout << std::endl;
    std::cout << "Tail of tail\n";
    auto t2 = t1.pop_front();
    printQ(t2);
    std::cout << "Original\n";
    printQ(q3);
}
开发者ID:Chilledheart,项目名称:Okasaki,代码行数:27,代码来源:Test.cpp


示例6: getFontWidth

std::list<UString> BitmapFont::wordWrapText(const UString &Text, int MaxWidth)
{
	int txtwidth;
	std::list<UString> lines = Text.splitlist("\n");
	std::list<UString> wrappedLines;

	for (UString str : lines)
	{
		txtwidth = getFontWidth(str);

		if (txtwidth > MaxWidth)
		{
			auto remainingChunks = str.splitlist(" ");
			UString currentLine;

			while (!remainingChunks.empty())
			{
				UString currentTestLine;
				if (currentLine != "")
					currentTestLine = currentLine + " ";

				auto &currentChunk = remainingChunks.front();
				currentTestLine += currentChunk;

				auto estimatedLength = getFontWidth(currentTestLine);

				if (estimatedLength < MaxWidth)
				{
					currentLine = currentTestLine;
					remainingChunks.pop_front();
				}
				else
				{
					if (currentLine == "")
					{
						LogWarning("No break in line \"%s\" found - this will probably overflow "
						           "the control",
						           currentTestLine);
						currentLine = currentTestLine;
						remainingChunks.pop_front();
					}
					else
					{
						wrappedLines.push_back(currentLine);
						currentLine = "";
					}
				}
			}
			if (currentLine != "")
				wrappedLines.push_back(currentLine);
		}
		else
		{
			wrappedLines.push_back(str);
		}
	}

	return wrappedLines;
}
开发者ID:steveschnepp,项目名称:OpenApoc,代码行数:59,代码来源:font.cpp


示例7: pop_front

	void MessageQueue::clear()
	{
		nullmsg* msg = pop_front();
		while(msg)
		{
			free(msg);
			msg = pop_front();
		}
	}
开发者ID:BillXu,项目名称:NewProject,代码行数:9,代码来源:MessageQueue.cpp


示例8: unwrap

   boost::optional<std::string> unwrap() {
      if (m_part_data.size() == 0) {
         return opstring_t();
      }
	  opstring_t addr = pop_front();
      if (address()) {
         pop_front();
      }
      return opstring_t(addr);
   }
开发者ID:0000-bigtree,项目名称:nscp,代码行数:10,代码来源:zmsg.hpp


示例9: main

int main()
{
   auto d = std::deque<int>{};
   for (auto i = 0; i < 100; ++i)
      d.push_front(i);
   auto l = Bad_list<int>{};
   for (auto i : d) {
      l.push_back(i);
      assert(l.front() == d.front());
   }

   assert(l.size() == difference_type_t<decltype(l)>(d.size()));
   for (; !l.empty(); d.pop_front(), l.pop_front())
      assert(l.front() == d.front());
}
开发者ID:cjdb,项目名称:cs6771-16s2,代码行数:15,代码来源:test4c.cpp


示例10: main

int main(int argc,char *argv[]){
        list_t list;

        init_list(&list);

        push_front(&list,1);
        push_front(&list,2);
        push_front(&list,3);
        push_front(&list,4);
        push_front(&list,5);

        printf("Pop\n");
        while( list.size != 0 ){
                printf("%d\n",pop_front(&list));
        }

        push_back(&list,1);
        push_back(&list,2);
        push_back(&list,3);
        push_back(&list,4);
        push_back(&list,5);

        printf("Pop\n");
        while( list.size != 0 ){
                printf("%d\n",pop_back(&list));
        }


        return 0;
}
开发者ID:PauloBicalho,项目名称:Study,代码行数:30,代码来源:main.c


示例11: front

bool CSquirrelArguments::popVector3(CVector3 &vec3)
{
	// Do we have 3 arguments to pop?
	if(size() >= 3)
	{
		// Get 3 arguments from the front
		CSquirrelArgument * pArguments[3];

		for(int i = 0; i < 3; i++)
		{
			pArguments[i] = front();

			// Ensure this argument is a floating point value
			if(pArguments[i]->GetType() != OT_FLOAT)
				return false;

			pop_front();
		}

		// Set the vector
		vec3.fX = pArguments[0]->GetFloat();
		vec3.fY = pArguments[1]->GetFloat();
		vec3.fZ = pArguments[2]->GetFloat();
		return true;
	}

	// Not enough arguments
	return false;
}
开发者ID:AgresivD,项目名称:ivmultiplayer,代码行数:29,代码来源:CSquirrelArguments.cpp


示例12: clear

int clear(node_ptr head)
{
	while(!is_empty(head)){
		pop_front(head);
	}
	return 0;
}
开发者ID:Couragewang,项目名称:data_struct,代码行数:7,代码来源:my_circular_list.c


示例13: pgassert

bool
Optimize::decrease_truck(size_t cycle) {

    auto position = cycle;
    for (auto orders = fleet[position].orders_in_vehicle();
            !orders.empty();
            orders.pop_front()) {
        /* Step 2: grab an order */
        auto order = fleet[position].orders()[orders.front()];
        pgassert(order.idx() == orders.front());


        /* Step 3:
         * cycle the fleet
         * insert in first truck possible
         */

        for (size_t i = 0; i < position; ++i) {
            fleet[i].insert(order);
            if (fleet[i].is_feasable()) {
                /*
                 * delete the order from the current truck
                 */
                fleet[position].erase(order);
                break;
            } else {
                fleet[i].erase(order);
            }
        }
    }
    return fleet[position].orders_in_vehicle().empty();
}
开发者ID:chahidinho,项目名称:pgrouting,代码行数:32,代码来源:optimize.cpp


示例14: remove_dlist_node

Boolean    remove_dlist_node(Dlist *dlist, 
               Dlist_node *node, void **value)    //删除指定节点
{
    if(dlist == NULL || node == NULL){
        return FALSE;
    }

    if(value != NULL){    //取得被删除节点数据域信息
        *value = node->data;
    }

    if(node->next == NULL){    //node在尾部
        pop_back(dlist);
    }else if(node->prev == NULL){
        pop_front(dlist);
    }else{
        node->prev->next = node->next;
        node->next->prev = node->prev;
        if(dlist->free != NULL){
            dlist->free(node->data); 
        }
        free(node);   //Free(node)
        dlist->count--;
    
        /*
 *
 * #define Free(node) (node->prev->next = node->next;) \
 *                    (node->next->prev = node->prev;) \
 *                    
 *
 * */
    }
    return TRUE;
}
开发者ID:kingfeng12138,项目名称:westos_c,代码行数:34,代码来源:dlist.c


示例15: test_endOfList

void test_endOfList(list* l) {
    printf("end of list tests\n");
    struct testdata* last = create_testdata("Alex", 0);
    push_front(l, last);
    push_front(l, create_testdata("Steve", 0));
    push_front(l, create_testdata("Joe", 0));

    // also checks contains pointer return
    struct testdata* me = create_testdata("Alex", 55);
    assert(contains(l, me, testdata_string_val_comp)
            == last);
    free_testdata(me);

    list* l2 = copy_list(l, copy_testdata);
    for (int num_prints = 3; num_prints > 0; num_prints--) {
        print_count = 0;
        last_printed = NULL;
        printf("Expecting %d elements to print:\n", num_prints);
        traverse(l2, print_testdata);
        assert(print_count == num_prints);
        assert(strcmp(last_printed, "Alex") == 0);
        free_testdata(pop_front(l2));
    }
    print_count = 0;
    last_printed = NULL;
    traverse(l2, print_testdata);
    assert(print_count == 0);

    free_td_list(l2);
}
开发者ID:achiang31,项目名称:Assignments,代码行数:30,代码来源:alex_test.c


示例16: free_deque_front

void free_deque_front(deque* d, void (*freefunc)(void*)) {
	while(front(d))
		pop_front(d, freefunc);
	// free the dummy node
	freefunc(d->begin);
	freefunc(d);
}
开发者ID:Doruk-Aksoy,项目名称:Lectures,代码行数:7,代码来源:Deque_t.c


示例17: malloc

CommandBlock *new_command_block(LinkedList *tokens) {
	CommandBlock *result = malloc(sizeof(CommandBlock));
	result->valid = true;
	result->input = NULL;
	result->output = NULL;
	result->command = NULL;

	int success = parse_command(result, tokens);
	if (success == -1) {
		result->valid = false;
		return result;
	}
	
	while (get_length(tokens) > 0) {
		char *tok = (char *) pop_front(tokens);
		if (tok[0] == '>') {
			free(tok);
			if (parse_output(result, tokens) == -1) {
				result->valid = false;
				return result;
			}
		} else if (tok[0] == '<') {
			free(tok);
			if (parse_input(result, tokens) == -1) {
				result->valid = false;
				return result;
			}
		} else {
			free(tok);
			exit(1);
		}
	}

	return result;
}
开发者ID:aolesky,项目名称:Shell,代码行数:35,代码来源:command-block.c


示例18: destroy_cmd_list

int destroy_cmd_list(struct SLList *cmds) {
  struct ExecutableCmd *curr;
  while ( (curr = pop_front(cmds)) ) {
    destroy_exe_cmd(curr);
  }
  return 0;
}
开发者ID:vfrenkel,项目名称:os_shell,代码行数:7,代码来源:shell.c


示例19: pop_front

typename List_doubly_linked<type>::iterator List_doubly_linked<type>::erase
	(typename List_doubly_linked::iterator position){
	if(position.get_node_ptr() == sentinel_head.get_next_ptr()){
		/* Erasing the first element. */
		pop_front(); 
		return this->begin(); 
	}
	else if(position.get_node_ptr() == &sentinel_tail){
		/* Trying to erase the node past the last data node. 
		 * This is not possible. 
		 */
		assert(position.get_node_ptr() != &sentinel_tail); 
	}
	else if(position.get_node_ptr() == sentinel_tail.get_prev_ptr()){
		/* Erase last data node. */
		pop_back(); 
		return iterator(sentinel_tail.get_prev_ptr()); 
	}
	else{
		/* Deleting an element in the middle. 
		 * This list contains at least 3 elements for sure. 
		 */
		Node<type> *temp = position.get_node_ptr()->get_prev_ptr(); 
		temp->set_next_ptr(position.get_node_ptr()->get_next_ptr()); 
		position.get_node_ptr()->get_next_ptr()->set_prev_ptr(temp); 
		delete (position.get_node_ptr()); 
		-- list_size; 
		return iterator(temp->get_next_ptr()); 
	}
}
开发者ID:Prudhviyendluri,项目名称:Data-Structures,代码行数:30,代码来源:List_doubly_linked.cpp


示例20: while

void CircularList::clear()
{
	while (head != 0)
	{
		pop_front();
	}
}
开发者ID:romac0503,项目名称:training-stuff,代码行数:7,代码来源:CircularList.cpp



注:本文中的pop_front函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ pop_heap函数代码示例发布时间:2022-05-30
下一篇:
C++ popVar函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap