展开全部
泛型编程(Generic Programming)最初提出时的动机很简单直接:发明一种语言机制,能够帮助实现一个通用的标准容器库。所谓通用的标准容器库,就是要能够做到,比如用一个List类存放所有可能类型的对象这样的事;泛型编程让你编写完全一般化并可重复使用的算法,其效率与针对某特定数据类型而设计的算法相同。
将问题抽象化,程序员用起来更方便,可以不必纠结在这些重复的东西中
里面的实现用了优秀的算法,更加安全,它是和容器一起组合用的,至于威力你自己写一个数据结构,看看stl的源码,实现和容器一样的功能,比较比较啊
将问题抽象化,程序员用起来更方便,可以不必纠结在这些重复的东西中
里面的实现用了优秀的算法,更加安全,它是和容器一起组合用的,至于威力你自己写一个数据结构,看看stl的源码,实现和容器一样的功能,比较比较啊
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1 便于访问集合中的元素。
2 同时通过迭代器可以操作set中的元素。
2 同时通过迭代器可以操作set中的元素。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
包括头文件:
#include <algorithm>
#include <set>
集合函数:
set<int> S1,S2;
S1.insert(1);//插入一个元素1
S2.insert(2);//插入一个元素2
set<int>::iterator site; //迭代器,用法同vector
set<int> Si;
set<int>vis
set_intersection( S.begin(), S.end(), S2.begin(), S2.end(), inserter( Si, Si.begin() ) ); //Si为求交后的集合
set_union(...)//并,语法同上
set_difference(...) //差,语法同上
vis.clear() 移除set容器内所有元素
vis.count(s) 返回vis中值为s的个数
if(vis.count(s)) 判断s是否在集合vis中
vis.find(s) 返回s所在位置,如找不到,返回end(),即为vis,fing(s)==vis.end() vis.insert(s) 把s加入集合
vis.remove(s) 从集合中移除s
输出:
set<int>::iterator ii;
for(ii=si.begin();ii!=si.end();ii++)
cout<<(*ii)<<' ';
#include <algorithm>
#include <set>
集合函数:
set<int> S1,S2;
S1.insert(1);//插入一个元素1
S2.insert(2);//插入一个元素2
set<int>::iterator site; //迭代器,用法同vector
set<int> Si;
set<int>vis
set_intersection( S.begin(), S.end(), S2.begin(), S2.end(), inserter( Si, Si.begin() ) ); //Si为求交后的集合
set_union(...)//并,语法同上
set_difference(...) //差,语法同上
vis.clear() 移除set容器内所有元素
vis.count(s) 返回vis中值为s的个数
if(vis.count(s)) 判断s是否在集合vis中
vis.find(s) 返回s所在位置,如找不到,返回end(),即为vis,fing(s)==vis.end() vis.insert(s) 把s加入集合
vis.remove(s) 从集合中移除s
输出:
set<int>::iterator ii;
for(ii=si.begin();ii!=si.end();ii++)
cout<<(*ii)<<' ';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通用,安全。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询