电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

NOIP复赛复习10STL容器与字符串模板

NOIP复赛复习10STL容器与字符串模板_第1页
1/18
NOIP复赛复习10STL容器与字符串模板_第2页
2/18
NOIP复赛复习10STL容器与字符串模板_第3页
3/18
NOIP 复赛复习 10STL 容器与字符串模板STL 容器STL 容器是一些模板类,提供了多种组织数据的常用方法。常用的STL 容器包括 pair(组合)、list(列表,类似于链表)、vector(向量,类似于数组)、priority_queue(优先队列)、set(集合)、map(映射)、stack(栈)等,通过模板的参数我们可以指定容器中的元素类型。1、pair相当于一个 Struct,访问方式举个例子:pair p; 那么第一个成员便是 p.first、第二个p.second,pair 使用起来很方便,简单快速高效,可以当做一个二元struct 使用,而且它定义了比较的方法,先根据第一个成员比较,在根据第二个,所以如果你的比较运算符是这样,那么你就不需要定义比较函数了,而 struct 是不能直接进行比较的,构造 pair 的方法:make_pair。例:#include #include #include #include #include using namespace std;const int N = 1010;typedef pair p;p a[N];int main() { int k = 0; a[k++] = p(3, 4); a[k++] = p(3, 100); a[k++] = p(1, 2); a[k++] = p(4, 10); sort(a, a+k, greater

()); for (int i = 0; i < k; i++) printf("%d %d\n", a[i].first, a[i].second); return 0;}2、Listlist 是一个循环链表。这个容器的特点:快速插入和删除。作用和vector 差不多,但内部是用链表实现。这个容器不支持随机访问,你不能[]或者利用通用算法操作,比如说要排序的话你只能利用成员函数比如 list.sort(),而且很重要的一点,list 的 size()函数是线性的,因为是以遍历函数 distance 实现的。例:HDU 5127#include #include #include #include #include using namespace std;typedef long long LL;typedef pair p;list

l;int main() { int n; while (scanf("%d", &n), n) { l.clear(); for (int i = 0; i < n; i++) { LL a, b; int t; scanf("%d %I64d %I64d", &t, &a, &b); if (t == 1) l.push_back(p(a, b)); else if (t == -1) l.erase(find(l.begin(), l.end(), p(a, b))); else { list

::iterator i = l.begin(); LL ans = i->first * a + i->second * b; for (++i; i != l.end(); i++) an...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

NOIP复赛复习10STL容器与字符串模板

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部