zoukankan      html  css  js  c++  java
  • 数据算法一个项目中的STL类型的选择和算法实现

    工作之余抽点时间出来写写博文,希望对新接触的朋友有帮助。今天在这里和大家一起学习一下数据算法

        

    1.描述:

        我的类中须要存放strin类型的数据,

        而且须要和数据连接,实时跟新该容器的数据。

        

        

    2,我的思路:

        

    起初:

        我盘算用一个vector就能够啦~

        

    后来:

        我反对了,并非我觉得vecotr不好,正式因为我想的算法促使我选择不用vector。

        

        

    3,算法:

        

    起初:

        

    我用了个很拙楼的算法:

        假设vFrom是实时得到的数据(新的),vTo是我类中保存的数据(须要去更新的)。

        我须要知道vTo中是否:增长(add), 增长(delete)

        

    于是:(伪代码)

    foreach in vFrom
        foreach in vTo
           如果vTo中没有,则:
           add
    
    foreach in vTo
        foreach in vFrom
            如果vFrom中没有,则:
           delete

        

        委实汗颜!!!

        

        

    后来:

        我想用一个tmp数据来保存From和To的数据,然后只遍历一次,去除它们都有的成员,那么残余的分别是add和delete的数据啦~

        意思是,我须要应用增删。

        

    所以:

        选择数据结构:list

        

        

    4,贴个代码:

        每日一道理
    冰心说道:“爱在左,同情在右,走在生命的两旁,随时撒种,随时开花,将这一径长途,点缀得香花弥漫,使穿枝拂叶的行人,踏着荆棘,不觉得痛苦,有泪可落,却不是悲凉。”
    // STL_cmp.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    
    //#include <map>
    //#include <vector>
    #include <list>
    #include <string>
    #include <iostream>
    
    using namespace std;
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	// lFrom模拟实时从数据得到的数据
    	// lTo模拟本地数据
    	list<string> lFrom, lTo;
    	lFrom.push_back("1");
    	lFrom.push_back("2");
    	lFrom.push_back("3");
    	lFrom.push_back("4");
    	lTo.push_back("1");
    	lTo.push_back("3");
    	lTo.push_back("4");
    	lTo.push_back("5");
    
    	list<string> need_to_add = lFrom;
    	list<string> need_to_delete = lTo;
    
    	list<string>::iterator itAdd = need_to_add.begin();
    	list<string>::iterator itDel;
    
    	for (; itAdd != need_to_add.end(); ) {
    		for (itDel = need_to_delete.begin(); itDel != need_to_delete.end(); ) {
    			if (*itAdd == *itDel) {
    				itAdd = need_to_add.erase(itAdd);
    				itDel = need_to_delete.erase(itDel);
    				break;
    			} else {
    				itAdd++;
    			}
    		}
    		itDel++;
    	}
    	need_to_add;
    	need_to_delete;
    	while (1);
    	return 0;
    }

        

        

        

    文章结束给大家分享下程序员的一些笑话语录: 自行车
    一个程序员骑着一个很漂亮的自行车到了公司,另一个程序员看到了他,问 到,“你是从哪搞到的这么漂亮的车的?”
    骑车的那个程序员说, “我刚从那边过来, 有一个漂亮的姑娘骑着这个车过来, 并停在我跟前,把衣服全脱了,然后对我说,‘你想要什么都可以’”。
    另一个程序员马上说到, “你绝对做了一个正确的选择, 因为那姑娘的衣服你 并不一定穿得了”。

    --------------------------------- 原创文章 By
    数据和算法
    ---------------------------------

  • 相关阅读:
    Stop介绍
    django建站基本步骤
    Js 数组排序函数sort()
    前端面试基础-html篇之CSS3新特性
    前端面试基础-html篇之H5新特性
    2018年前端程序猿最好用的编辑器:visual studio code 常见配置
    适合手机端页面的轮播图,无插件,支持自动循环,一套轮播图可以适应所有的屏幕
    纯css3实现圆点围绕圆圈匀速无限旋转
    xpath 踩坑笔记01 通过a 文本内容标签定位元素
    python3学习记录3
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3100729.html
Copyright © 2011-2022 走看看