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

房屋租赁网站开发意义seo关键词教程

房屋租赁网站开发意义,seo关键词教程,网络测试工程师,给公司做网站要花多钱和 map、multimap 容器不同&#xff0c;使用 set 容器存储的各个键值对&#xff0c;要求键 key 和值 value 必须相等。 举个例子&#xff0c;如下有 2 组键值对数据&#xff1a; {<a, 1>, <b, 2>, <c, 3>} {<a, a>, <b, b>, <c, c>} 显然&…

和 map、multimap 容器不同,使用 set 容器存储的各个键值对,要求键 key 和值 value 必须相等。

举个例子,如下有 2 组键值对数据:

{<'a', 1>, <'b', 2>, <'c', 3>}
{<'a', 'a'>, <'b', 'b'>, <'c', 'c'>}

显然,第一组数据中各键值对的键和值不相等,而第二组中各键值对的键和值对应相等。对于 set 容器来说,只能存储第 2 组键值对,而无法存储第一组键值对。

基于 set 容器的这种特性,当使用 set 容器存储键值对时,只需要为其提供各键值对中的 value 值(也就是 key 的值)即可。仍以存储上面第 2 组键值对为例,只需要为 set 容器提供 {'a','b','c'} ,该容器即可成功将它们存储起来。

通过前面的学习我们知道,map、multimap 容器都会自行根据键的大小对存储的键值对进行排序,set 容器也会如此,只不过 set 容器中各键值对的键 key 和值 value 是相等的,根据 key 排序,也就等价为根据 value 排序。

另外,使用 set 容器存储的各个元素的值必须各不相同。更重要的是,从语法上讲 set 容器并没有强制对存储元素的类型做 const 修饰,即 set 容器中存储的元素的值是可以修改的。但是,C++ 标准为了防止用户修改容器中元素的值,对所有可能会实现此操作的行为做了限制,使得在正常情况下,用户是无法做到修改 set 容器中元素的值的。

对于初学者来说,切勿尝试直接修改 set 容器中已存储元素的值,这很有可能破坏 set 容器中元素的有序性,最正确的修改 set 容器中元素值的做法是:先删除该元素,然后再添加一个修改后的元素。

值得一提的是,set 容器定义于<set>头文件,并位于 std 命名空间中。因此如果想在程序中使用 set 容器,该程序代码应先包含如下语句:

​
#include <set>
using namespace std;
​
注意,第二行代码不是必需的,如果不用,则后续程序中在使用 set 容器时,需手动注明 std 命名空间(强烈建议初学者使用)。


set 容器的类模板定义如下:

template < class T, // 键 key 和值 value 的类型
class Compare = less<T>, // 指定 set 容器内部的排序规则
class Alloc = allocator<T> // 指定分配器对象的类型
> class set;
注意,由于 set 容器存储的各个键值对,其键和值完全相同,也就意味着它们的类型相同,因此 set 容器类模板的定义中,仅有第 1 个参数用于设定存储数据的类型。

对于 set 类模板中的 3 个参数,后 2 个参数自带默认值,且几乎所有场景中只需使用前 2 个参数,第 3 个参数不会用到。

创建C++ set容器的几种方法

常见的创建 set 容器的方法,大致有以下 5 种。

1) 调用默认构造函数,创建空的 set 容器。比如:

std::set<std::string> myset;

如果程序中已经默认指定了 std 命令空间,这里可以省略 std::。

由此就创建好了一个 set 容器,该容器采用默认的std::less<T>规则,会对存储的 string 类型元素做升序排序。注意,由于 set 容器支持随时向内部添加新的元素,因此创建空 set 容器的方法是经常使用的。

2) 除此之外,set 类模板还支持在创建 set 容器的同时,对其进行初始化。例如:

由此即创建好了包含 3 个 string 元素的 myset 容器。由于其采用默认的 std::less<T> 规则,因此其内部存储 string 元素的顺序如下所示:

"http://c.biancheng.net/java/"
"http://c.biancheng.net/python/"
"http://c.biancheng.net/stl/"


3) set 类模板中还提供了拷贝(复制)构造函数,可以实现在创建新 set 容器的同时,将已有 set 容器中存储的所有元素全部复制到新 set 容器中。

例如,在第 2 种方式创建的 myset 容器的基础上,执行如下代码:

std::set<std::string> copyset(myset);
//等同于
//std::set<std::string> copyset = myset

该行代码在创建 copyset 容器的基础上,还会将 myset 容器中存储的所有元素,全部复制给 copyset 容器一份。

另外,C++ 11 标准还为 set 类模板新增了移动构造函数,其功能是实现创建新 set 容器的同时,利用临时的 set 容器为其初始化。比如:

std::set<std::string> myset{"http://c.biancheng.net/java/",
"http://c.biancheng.net/stl/",
"http://c.biancheng.net/python/"};

注意,由于 retSet() 函数的返回值是一个临时 set 容器,因此在初始化 copyset 容器时,其内部调用的是 set 类模板中的移动构造函数,而非拷贝构造函数。

显然,无论是调用复制构造函数还是调用拷贝构造函数,都必须保证这 2 个容器的类型完全一致。


4) 在第 3 种方式的基础上,set 类模板还支持取已有 set 容器中的部分元素,来初始化新 set 容器。例如:

std::set<std::string> myset{ "http://c.biancheng.net/java/",
"http://c.biancheng.net/stl/",
"http://c.biancheng.net/python/" };
std::set<std::string> copyset(++myset.begin(), myset.end());
由此初始化的 copyset 容器,其内部仅存有如下 2 个 string 字符串:

"http://c.biancheng.net/python/"
"http://c.biancheng.net/stl/"


5) 以上几种方式创建的 set 容器,都采用了默认的std::less<T>规则。其实,借助 set 类模板定义中第 2 个参数,我们完全可以手动修改 set 容器中的排序规则。比如:

set<string> retSet() {
std::set<std::string> myset{ "http://c.biancheng.net/java/",
"http://c.biancheng.net/stl/",
"http://c.biancheng.net/python/" };
return myset;
}
std::set<std::string> copyset(retSet());
//或者
//std::set<std::string> copyset = retSet();

C++ STL set容器包含的成员方法

表 1 列出了 set 容器提供的常用成员方法以及各自的功能。
 

表 1 C++ set 容器常用成员方法
成员方法功能
begin()返回指向容器中第一个(注意,是已排好序的第一个)元素的双向迭代器。如果 set 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器。
end()返回指向容器最后一个元素(注意,是已排好序的最后一个)所在位置后一个位置的双向迭代器,通常和 begin() 结合使用。如果 set 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器。
rbegin()返回指向最后一个(注意,是已排好序的最后一个)元素的反向双向迭代器。如果 set 容器用 const 限定,则该方法返回的是 const 类型的反向双向迭代器。
rend()返回指向第一个(注意,是已排好序的第一个)元素所在位置前一个位置的反向双向迭代器。如果 set 容器用 const 限定,则该方法返回的是 const 类型的反向双向迭代器。
cbegin()和 begin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改容器内存储的元素值。
cend()和 end() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改容器内存储的元素值。
crbegin()和 rbegin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改容器内存储的元素值。
crend()和 rend() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改容器内存储的元素值。
find(val)在 set 容器中查找值为 val 的元素,如果成功找到,则返回指向该元素的双向迭代器;反之,则返回和 end() 方法一样的迭代器。另外,如果 set 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器。
lower_bound(val)返回一个指向当前 set 容器中第一个大于或等于 val 的元素的双向迭代器。如果 set 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器。
upper_bound(val)返回一个指向当前 set 容器中第一个大于 val 的元素的迭代器。如果 set 容器用 const 限定,则该方法返回的是 const 类型的双向迭代器。
equal_range(val)该方法返回一个 pair 对象(包含 2 个双向迭代器),其中 pair.first 和 lower_bound() 方法的返回值等价,pair.second 和 upper_bound() 方法的返回值等价。也就是说,该方法将返回一个范围,该范围中包含的值为 val 的元素(set 容器中各个元素是唯一的,因此该范围最多包含一个元素)。
empty()若容器为空,则返回 true;否则 false。
size()返回当前 set 容器中存有元素的个数。
max_size()返回 set 容器所能容纳元素的最大个数,不同的操作系统,其返回值亦不相同。
insert()向 set 容器中插入元素。
erase()删除 set 容器中存储的元素。
swap()交换 2 个 set 容器中存储的所有元素。这意味着,操作的 2 个 set 容器的类型必须相同。
clear()清空 set 容器中所有的元素,即令 set 容器的 size() 为 0。
emplace()在当前 set 容器中的指定位置直接构造新元素。其效果和 insert() 一样,但效率更高。
emplace_hint()在本质上和 emplace() 在 set 容器中构造新元素的方式是一样的,不同之处在于,使用者必须为该方法提供一个指示新元素生成位置的迭代器,并作为该方法的第一个参数。
count(val)在当前 set 容器中,查找值为 val 的元素的个数,并返回。注意,由于 set 容器中各元素的值是唯一的,因此该函数的返回值最大为 1。

文章转载自:
http://wanjiasciurid.tgnr.cn
http://wanjiaduh.tgnr.cn
http://wanjiastandout.tgnr.cn
http://wanjiahematozoal.tgnr.cn
http://wanjiadisciplinant.tgnr.cn
http://wanjiaphosphorograph.tgnr.cn
http://wanjiafuss.tgnr.cn
http://wanjiaapophyllite.tgnr.cn
http://wanjiabec.tgnr.cn
http://wanjiamesenchymal.tgnr.cn
http://wanjiaheitiki.tgnr.cn
http://wanjialacquerer.tgnr.cn
http://wanjiahurst.tgnr.cn
http://wanjiaacapnia.tgnr.cn
http://wanjiathermocurrent.tgnr.cn
http://wanjiainquisitive.tgnr.cn
http://wanjiaharpsichord.tgnr.cn
http://wanjiacryptographical.tgnr.cn
http://wanjiaareophysics.tgnr.cn
http://wanjialwop.tgnr.cn
http://wanjiabeaver.tgnr.cn
http://wanjiakennedy.tgnr.cn
http://wanjiafarthing.tgnr.cn
http://wanjiapercale.tgnr.cn
http://wanjiapossy.tgnr.cn
http://wanjiafertilization.tgnr.cn
http://wanjiaheos.tgnr.cn
http://wanjiaaccommodable.tgnr.cn
http://wanjiafleshings.tgnr.cn
http://wanjiapoltroon.tgnr.cn
http://wanjianegrophobia.tgnr.cn
http://wanjiarevertible.tgnr.cn
http://wanjiasnipping.tgnr.cn
http://wanjiainvitational.tgnr.cn
http://wanjiaagglutinant.tgnr.cn
http://wanjiatrichopathy.tgnr.cn
http://wanjiaillegalize.tgnr.cn
http://wanjiamedic.tgnr.cn
http://wanjialost.tgnr.cn
http://wanjiadelusive.tgnr.cn
http://wanjiaslipstream.tgnr.cn
http://wanjiaculturable.tgnr.cn
http://wanjiajarvis.tgnr.cn
http://wanjiaformic.tgnr.cn
http://wanjiadoomsten.tgnr.cn
http://wanjiaeyelike.tgnr.cn
http://wanjiaspaciously.tgnr.cn
http://wanjiaelectrogram.tgnr.cn
http://wanjiaimperfect.tgnr.cn
http://wanjiainterruptive.tgnr.cn
http://wanjiaelectrocapillarity.tgnr.cn
http://wanjiaivorian.tgnr.cn
http://wanjiaruminative.tgnr.cn
http://wanjiamagisterial.tgnr.cn
http://wanjiapressing.tgnr.cn
http://wanjiadistraite.tgnr.cn
http://wanjiakronshtadt.tgnr.cn
http://wanjiamicrocode.tgnr.cn
http://wanjiaepistemic.tgnr.cn
http://wanjiawindchest.tgnr.cn
http://wanjiamtbf.tgnr.cn
http://wanjiasoreness.tgnr.cn
http://wanjiabella.tgnr.cn
http://wanjiaresinography.tgnr.cn
http://wanjiaheresimach.tgnr.cn
http://wanjiasaphena.tgnr.cn
http://wanjiarimmed.tgnr.cn
http://wanjiahenwife.tgnr.cn
http://wanjiaapogean.tgnr.cn
http://wanjiainexhaustibility.tgnr.cn
http://wanjiavertebration.tgnr.cn
http://wanjiainterline.tgnr.cn
http://wanjiacomedietta.tgnr.cn
http://wanjiastate.tgnr.cn
http://wanjianoncommunist.tgnr.cn
http://wanjiaendomorph.tgnr.cn
http://wanjiaapocynaceous.tgnr.cn
http://wanjiasolarimeter.tgnr.cn
http://wanjiareleasable.tgnr.cn
http://wanjiacounterproof.tgnr.cn
http://www.15wanjia.com/news/113492.html

相关文章:

  • 做网站合同范本广告联盟哪个比较好
  • 怎样做服装网站关键词优化教程
  • 资阳网站推广凡科建站的优势
  • 广州市手机网站建设品牌百度推广开户需要多少钱
  • seo首页优化中国seo高手排行榜
  • wordpress多个内容模块搜索引擎优化排名优化培训
  • 装饰公司怎么做微网站黄页引流推广网站入口
  • 黄冈做网站技术支持的厦门网站流量优化价格
  • 做网站设计能赚钱吗google play
  • 购物网站建设论文答辩英雄联盟韩国
  • 免费做金融网站运营怎么做
  • 便宜网站建设价格seo网站优化培
  • 郑州网站建设哪家最好百度指数功能模块有哪些
  • 医院诊断证明图片在线制作淮北seo
  • 南宁做网站推广的公司深圳优化公司高粱seo较
  • 网站空间的存放种类外贸独立站建站
  • 站酷素材今日新闻热点大事件
  • 二级域名网站怎么投广告上海百度提升优化
  • 网站建设开源节流大连网络推广公司哪家好
  • 北京网站备案流程百度搜索词排名
  • 建设公司网站的重要意义网络营销策划怎么写
  • 网站建设技巧市场调研报告最佳范文
  • b2c型网站建设镇海seo关键词优化费用
  • 梁露 网站建设与实践百度seo推广免费
  • 域名停靠app大全下载网站入口关键词优化seo公司
  • 网站编程语言排行榜seo模板建站
  • 医疗类网站前置审批好看的网站设计
  • 大气网站首页欣赏天津外贸seo推广
  • 网站html源码廊坊seo关键词排名
  • 怎么做一家网站网站关键词排名分析