当前位置: 首页 > news >正文

可以做直播的游戏视频网站软文广告经典案例

可以做直播的游戏视频网站,软文广告经典案例,WordPress博客右边设置,电子商务的功能有哪些一、数据的整合 在实际的开发场景中,经常可以遇到以下的情况:有几个地方的数据需要整合在一起。解决办法也有很多,在不同的层面有不同的解决方式。比如经过清洗可以把非关系型数据转为关系型数据。但在底层编程的情况中会发现有几情况&#…

一、数据的整合

在实际的开发场景中,经常可以遇到以下的情况:有几个地方的数据需要整合在一起。解决办法也有很多,在不同的层面有不同的解决方式。比如经过清洗可以把非关系型数据转为关系型数据。但在底层编程的情况中会发现有几情况:
1、几个数组之间的合并。
当然前提是这些数组存储的数据是兼容的
2、几个容器间的合并
它们之间的KEY和VALUE也要有兼容的数据类型
3、混合合并
可能需要做一些简单的数据处理,然后也可以合并在一起,比如数组数据,增加一个KEY(可以利用索引),就可以合并到容器中,反过来也可以考虑。

其实上面列举这么几种,本质就是把数据放到一个容器(广泛意义上的容器)中,这样方便程序的处理。比如有两个List,连接到一起一后就方便进行排序等算法的操作。

二、容器连接的基础方法

1、循环处理
这是最容易想到的方法 :

#include <iostream>
#include <unordered_map>
std::unordered_map<int, int> unmap{{1, 100}, {2, 200}};
int insertMap(std::unordered_map<int, int> &map) {if (map.size() < 1) {return 0;}for (auto &[k, v] : map) {unmap.emplace(k, v);}return unmap.size();
}int main(void) {std::unordered_map<int, int> map{{3, 300}, {4, 400}};size_t count = insertMap(map);std::cout << "new map size:" << count << std::endl;return 0;
}

2、 std::merge
它有两种合并的接口,一种是使用全局的merge;一种是使用容器自身包含的:

//map自身
#include <iostream>
#include <map>
#include <string>int main()
{std::map<int, std::string> ma{{1, "apple"}, {5, "pear"}, {10, "banana"}};std::map<int, std::string> mb{{2, "zorro"}, {4, "batman"}, {5, "X"}, {8, "alpaca"}};std::map<int, std::string> u;u.merge(ma);std::cout << "ma.size(): " << ma.size() << '\n';u.merge(mb);std::cout << "mb.size(): " << mb.size() << '\n';std::cout << "mb.at(5): " << mb.at(5) << '\n';for (auto const& kv : u)std::cout << kv.first << ", " << kv.second << '\n';
}
//全局
#include <algorithm>
#include <iterator>
#include <list>
template <typename T> void printList(const T &con, const char *c) {std::copy(con.cbegin(), con.cend(), std::ostream_iterator<typename T::value_type>(std::cout, c));std::cout << std::endl;
}
void stdMergeList() {std::list<int> l1{0, 1, 6, 3, 9, 7};std::list<int> l2{16, 11, 18, 35, 66};std::list<int> l3{};std::merge(l1.begin(), l1.end(), l2.begin(), l2.end(), std::back_inserter(l3));printList(l3, " ");
}int main(void) {stdMergeList();return 0;
}

上面的例程都比较简单,一看就明白。不过需要注意的是,有些小细节可能比较麻烦,比如在上面的使用全局处理时,如果插入到l2或l1中会是什么情况?可以试试。

另外还有一种方式就是使用C++17中的Node Handle的机制进行处理。

三、Node Handle

C++17中的Node handle(节点句柄),其实更应该说是一种机制而非方法。它主要用来处理基于结点的数据结构,常见的就是关联容器,如map,set等。它可以用Node Handle句柄来处理未指定类型的对象提取的节点。先看一个cppreference上的例子:

#include <algorithm>
#include <iostream>
#include <string_view>
#include <unordered_map>void print(std::string_view comment, const auto& data)
{std::cout << comment;for (auto [k, v] : data)std::cout << ' ' << k << '(' << v << ')';std::cout << '\n';
}int main()
{std::unordered_map<int, char> cont{{1, 'a'}, {2, 'b'}, {3, 'c'}};print("Start:", cont);// Extract node handle and change keyauto nh = cont.extract(1);nh.key() = 4;print("After extract and before insert:", cont);// Insert node handle backcont.insert(std::move(nh));print("End:", cont);
}

代码非常简单,大家一看就明白了。

四、分析

如果使用上面基础的连接方法,问题是没有什么大问题。但在实现上会有些让开发者不舒服的地方。比如循环方式插入,看似简单明了,但在底层大量进行了内存的分配和拷贝(移动),这会导致在某些情况下出现性能的瓶颈;而使用merge虽然有些进步,但并没有从本质解决,同时它还引入了一些场景的限制。比如全局的情况就只能使用有序的容器。这些细节如果再遇到复杂的应用场景如多线程等情况,一不小心可能就引入了错误。
而使用Node Handle就比较灵活方便,由于其只是Move元素,所以其效率和内存处理就简单和快捷许多。它利用了extract和insert函数,指向性非常准确和明显,即使出现异常也容易发现,非常易于维护。正如前面所分析,简单是王道!
不过使用此种机制也要小心一些重复插入的问题,文档说这种情况可能会产生UB行为。同时,仍然如前面所讲,合并的前后必须保证数据类型的一致性。最后切记切记,STL的容器一般都是非线程安全的。

五、总结

其实编程就是从这些小的功能一点点的把基础打好的。正如前面的容器中的insert,push_back和后来的emplace_back。STL库中为什么要有这么多的方法来处理元素的插入?把这些细节把握住就深刻明白了C++中容器组织的过程。从另外一个角度打开学习的途径。
人生而有涯,而学之也无涯!

http://www.hkea.cn/news/716057/

相关文章:

  • 温州平阳县网站建设兼职东莞网络推广哪家公司奿
  • 做单页网站价格微信朋友圈广告在哪里做
  • 濮阳家电网站建设一般开车用什么导航最好
  • html5 图片展示网站大作设计网站
  • 河北正规网站建设比较百度一下你就知道官页
  • 企业网站建设哪家服务好福州网站关键词推广
  • 惠州悦商做网站软件开发一般需要多少钱
  • 做衣服外单网站优化大师官方正版下载
  • 专门做酒店的网站百度排行
  • 上海做手机网站建设盐城网站优化
  • html论坛模板东营seo整站优化
  • 天津网站建设582345网址导航桌面版
  • 东莞纸箱厂东莞网站建设经典模板网站建设
  • 贺州同城购物网站建设中国网站排名100
  • 黄骅港旅游景点爱站网seo工具包
  • 网站 图文混编提高网站搜索排名
  • 北京怀柔网站制作教育机构
  • 网站建设费 大创友链交换平台
  • o2o商城网站系统开发微信群拉人的营销方法
  • 帝国cms做淘宝客网站网页设计用什么软件
  • 营销型网站建设的优缺点视频优化软件
  • 珠海响应式网站建设推广公司网络营销发展方案策划书
  • 中国人自己的空间站每日英语新闻
  • 教师可以做网站吗seo常用工具包括
  • 武山建设局网站什么是seo
  • 做文案需要用到的网站全网模板建站系统
  • 苏州乡村旅游网站建设策划书网站建设百度推广
  • 12380网站建设情况总结百度浏览器入口
  • 直播网站开发要多久排行榜前十名
  • 网站备案完才能建站吗企业建站公司