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

网页制作与网站建设ppt网站支付宝怎么做

网页制作与网站建设ppt,网站支付宝怎么做,创新的南昌网站制作,给个网站你们会感谢我的STL中大家最耳熟能详的可能就是容器,容器大致可以分为两类,序列型容器(SequenceContainer)和关联型容器(AssociativeContainer)这篇文章中将会重点介绍STL中的各种序列型容器和相关的容器适配器。主要内容包括 std::vectorstd::arraystd::dequestd::queuestd::stackstd::…STL中大家最耳熟能详的可能就是容器,容器大致可以分为两类,序列型容器(SequenceContainer)和关联型容器(AssociativeContainer)这篇文章中将会重点介绍STL中的各种序列型容器和相关的容器适配器。主要内容包括 std::vectorstd::arraystd::dequestd::queuestd::stackstd::priority_queuestd::liststd::forward_liststd::vector 提到STL,大部分人的第一反应是容器,而提到容器大部分人首先想到的是std::vector。斯特劳斯特卢普的观点来说,std::vector是所有的容器中的首先,如果你不清楚应该使用哪个容器,那就选std::vector吧(当然,你不应该不清楚选哪个容器,合格是程序员对自己写的代码应该要了如指掌)。 std::vector的使用非常简单,下面是一个简单的例子。 #include vector // 1int main(int argc, char* argv[]) {std::vectorint ages = { 1, 2, 3, 4 }; // 2return 0; } 头文件 // 1中引入了std::vector的头文件,需要注意的是所有C++标准库的头文件都是没有.h结尾的。这么做是为了区分,C标准库的头文件和C++标准库的头文件。比如最具代表性的: #include string.h // C 标准库头文件,包含 strlen,memset 等函数 #include string // C++ 标准库头文件,包含 std::string 类 此外对于所有C标准库头文件,如果你是在C++项目中引用,你应该使用#include cxxx这种方式而不是#include xxx.h这种形式。也就是说我们应该使用#include cstring而不是#include string.h std::vector 还是 vector 我见过很多的人(包括很多书)的习惯是在源文件头部写上using namespace std;然后在代码中使用vectorint,而不是直接使用std::vectorint。 我个人的习惯是直接使用std::vectorint,因为namespace对我来说是一个模块,写明了std::有更强的模块内聚表达力,而且也不太容易出现名字碰撞。 初始化 // 2在构造std::vector的时候直接给了初始值,这是C++11的特性,在C++11之前不能这样写,有一种大致等同的写法如下: int initilizer[4] = { 1, 2, 3, 4 }; std::vectorint ages(initilizer, initilizer + 4);std::vectorint ages = { 1, 2, 3, 4 }这种写法实际上从语法分析上来说是分成下面几个步骤的: { 1, 2, 3, 4 }被编译器构造成一个临时变量std::initializer_listint,然后使用临时变量构造一个临时变量std::vectorint,然后再用std::vectorint的拷贝构造函数构造最终的agesstd::initializer_listint initilizer; std::vectorint tmp(initilizer); std::vectorint ags(tmp); 当然上面的分析只是语法上的分析,绝大部分编译器都可以优化掉tmp,而且因为{1, 2, 3, 4}转换成std::initializer_list是编译器在编译器完成的事情,所以其实效率比我们想象中要高一些。 std::vector std::vector有一个特化版本std::vectorbool,用于实现dynamic bitset,需要注意的是,这个特化版本并不是容器,它的迭代器无法很好的适配STL中的所有算法。它的存在是为了节省空间,它的每一个元素只占用一位而不是一个字节。为了实现这种优化,operator[]返回的是一个代理类,你没有办法取单个元素的地址。通常的建议是,如果你不需要动态的bitset,你可以使用std::bitset,如果你需要dynamic bitset你可以考虑使用std::dequebool替代。 push_backvsemplace_back C++11在容器尾部添加一个元素调用的函数是push_back,它在libcxx中的实现如下: template class _Tp, class _Allocator inline _LIBCPP_INLINE_VISIBILITY void vector_Tp, _Allocator::push_back(const_reference __x) {if (this-__end_ != this-__end_cap()){__RAII_IncreaseAnnotator __annotator(*this);__alloc_traits::construct(this-__alloc(),_VSTD::__to_raw_pointer(this-__end_), __x);__annotator.__done();++this-__end_;}else__push_back_slow_path(__x); } 这里存在两次元素的构造,一次是 __x 参数的构造,一次是容器内部原始的拷贝构造。也就是说使用拷贝构造在末尾构造一个新的元素。emplace_back是C++11为减少其中一次拷贝而引入的新的接口,在libcxx中的实现如下 template class _Tp, class _Allocator template class... _Args inline #if _LIBCPP_STD_VER 14 typename vector_Tp, _Allocator::reference #else void #endif vector_Tp, _Allocator::emplace_back(_Args... __args) {if (this-__end_ this-__end_cap()){__RAII_IncreaseAnnotator __annotator(*this);__alloc_traits::construct(this-__alloc(),_VSTD::__to_raw_pointer(this-__end_),
http://www.w-s-a.com/news/882458/

相关文章:

  • 深圳网站建设代理商网业打开慢的原因
  • 旅游网站经营模式在屈臣氏做网站运营
  • 做管理信息的网站com域名查询
  • 免费推广网站推荐外贸推广平台哪个好
  • 腾宁科技做网站399元全包企业校园网站建设
  • 海外医疗兼职网站建设公司取名字大全免费
  • 龙口市规划建设局网站vi设计和品牌设计的区别
  • 企业网站的总体设计网站建设评审验收会议主持词
  • 网站建设完成推广响应式网站设计开发
  • 电商网站用php做的吗网站开发流程可规划为那三个阶段
  • flash网站怎么做音乐停止深圳网站建设金瓷网络
  • 哪个网站可以做房产信息群发怎么做国内网站吗
  • 微商城网站建设公司的价格卖磁铁的网站怎么做的
  • 免费做做网站手机平台软件开发
  • 网站单页做301徐州百度网站快速优化
  • 织梦怎么制作手机网站漳州专业网站建设公司
  • 邓州做网站网络优化概念
  • 查看网站开发phonegap wordpress
  • 网站建设和维护待遇怎样c 做的网站又哪些
  • 淮南网站推广网站开发行业前景
  • 丽水市龙泉市网站建设公司江门手机模板建站
  • 做化妆品注册和注册的网站有哪些wordpress加关键字
  • 四川新站优化php笑话网站源码
  • 外贸类网站酷玛网站建设
  • 合肥网站设计建设南宁网站seo推广优化公司
  • 临沂百度网站7x7x7x7x8黄全场免费
  • 海洋牧场网站建设大良网站设计价格
  • 手机端网站关键字排名北京seo公司哪家好
  • 福建建设培训中心网站网站建站服务公司地址
  • 青岛网站优化快速排名企业网址怎么整