网站空间后台怎么进入,广西南宁做网站,为农村建设网站报告,微小店网站建设价格目录
一、Vector容器#xff1a;
二、Queue队列
三、Map映射 四、题目#xff08;快递分拣 vector#xff09;#xff1a;
代码#xff1a;
五、题目#xff08;CLZ银行问题 queue#xff09;#xff1a;
代码#xff1a;
六、题目#xff08;费里的语言 map
二、Queue队列
三、Map映射 四、题目快递分拣 vector
代码
五、题目CLZ银行问题 queue
代码
六、题目费里的语言 map:
代码
一、Vector容器 Vector 的主要作用就是可变长度的数组就把他当成数组使用即可。 #include vector //头文件
vectorint a; //定义了一个int类型的vector容器a
vectorint b[100]; //定义了一个int类型的vector容器b 相当于二维数组
struct rec
{···
};
vectorrec c; //定义了一个rec类型的vector容器ca.size() //返回实际长度元素个数O(1)复杂度
a.empty() //容器为空返回1否则返回0O(1)复杂度
a.clear() //把vector清空
a.begin() //返回指向第一个元素的迭代器*a.begin()与a[0]作用相同
a.end() //越界访问指向vector尾部指向第n个元素再往后的边界
a.front() //返回第一个元素的值等价于*a.begin和a[0]
a.back() //返回最后一个元素的值等价于*--a.end()和a[size()-1]
a.push_back(x) //把元素x插入vector尾部
a.pop_back() //删除vector中最后一个元素//遍历的方法一for ( vectorint::iterator ita.begin() ; it!a.end() ; it )cout*iteratorendl;//遍历的方法二
for( int i0;ia.size();i) couta[i]endl;
二、Queue队列
queuestring myqueue;
queueint myqueue_int;front()//返回 queue 中第一个元素的引用。
back()//返回 queue 中最后一个元素的引用。
push(const T obj)//在 queue 的尾部添加一个元素的副本。
pop()//删除 queue 中的第一个元素。
size()//返回 queue 中元素的个数。
empty()//如果 queue 中没有元素的话返回 true。
三、Map映射 map 是一个关联容器它提供一对一的 hash。 第一个可以称为关键字(key)每个关键字只能在 map 中出现一次第二个可能称为该关键字的值(value) mapchar, int mymap1;
mapstring, int mymap2;int map.size();//查询map中有多少对元素
bool empty();// 查询map是否为空插入 map.insert(make_pair(key,value));//或者map.insert(pairchar, int(key, value))//或者map[key]value取值;mapint, string map;//如果map中没有关键字2233使用[]取值会导致插入
//因此下面语句不会报错但会使得输出结果结果为空
coutmap[2233]endl;//但是使用at会进行关键字检查因此下面语句会报错
map.at(2016) Bob;遍历
mapstring, string::iterator it;
for (it mapSet.begin(); it ! mapSet.end(); it)
{cout key it-first endl;cout value it-second endl;
}查找
m.count(key)//由于map不包含重复的key因此m.count(key)取值为0或者1表示是否包含。
m.find(key)//返回迭代器判断是否存在。 四、题目快递分拣 vector 代码
#includeiostream
#includevector
using namespace std;
vectorstring city;
vectorstring nums[1010];
int n;
int Find(string name)
{for (int i 0; i city.size(); i){if (city[i] name)//找到该城市return i;//返回该城市的所属nums的vector里}return -1;
}
int main()
{cin n;for (int i 0; i n; i){string num1, name1;cin num1 name1;if (Find(name1) -1)//找不到该城市名{city.push_back(name1);//新添城市名nums[city.size() - 1].push_back(num1);//将号码存到新城市所属nums的vector里}else//找到该城市名{nums[Find(name1)].push_back(num1);//将该号码存到该城市所属nums的vector里}}for (int i 0; i city.size(); i){cout city[i] nums[i].size() endl;//输出城市输出城市有的号码个数for (int j 0; j nums[i].size(); j){cout nums[i][j] endl;//输出城市有的号码}}
}
五、题目CLZ银行问题 queue 代码
#includeiostream
#includequeue
using namespace std;
queuestring vip;
queuestring no_vip;
int main()
{int m;cin m;while (m--){string s,name,choice;cin s;if (s IN)//入队{cin name choice;if (choice V)//入vip队列vip.push(name);else//否则入普通队列no_vip.push(name);}else{cin choice;if (choice V)//vip队列出队vip.pop();else//普通队列出队no_vip.pop();}}while (vip.size())//输出vip队列{cout vip.front() endl;vip.pop();}while (no_vip.size())//输出普通队列{cout no_vip.front() endl;no_vip.pop();}
}
六、题目费里的语言 map: 代码
#includeiostream
#includemap
using namespace std;
int main()
{int n;string ans NO;mapstring, bool mp;cin n;for (int i 0; i n; i){string word;cin word;if (mp.count(word))//不为0说明已经有了记录答案并跳出{ans word;break;}elsemp[word]1;//没有则将其加入标为1}cout ans;
}