您的位置:首页 > 其它

数据算法一个项目中的STL类型的选择和算法实现

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

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
数据和算法
---------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐