## ACM课堂笔记

这篇博客介绍了ACM竞赛中常用的编程语言,如C++、Java和Python,强调了C++的高效性和万能头文件的使用限制。同时,解释了时间复杂度的概念,指出其在算法分析中的重要性。此外,详细阐述了C++的STL(Standard Template Library),包括容器、迭代器和算法,并列举了各种容器如string、vector、queue、stack、set和map的使用方法及常见操作。
摘要由CSDN通过智能技术生成

ACM课堂笔记

#打卡第 1^n 天
一、竞赛常用语言

  1. C++(效率高、code速度快)
    万能头文件:#include<bits/stdc++.h>(绝大多数比赛禁用)
  2. 少数使用Java,存放大数据时可用
  3. Python(兼容度不高)

二、时间复杂度:

  1. 用函数T(n)表示当问题规模(需要处理的数据量)为n时,算法中的基本操作需要执行的次数;引入其同量级函数f(n)(即n趋于无穷时,有T(n) / f(n) = C,其中C为任意非零常数),记作T(n) = O(f(n)); O(f(n))即称为算法的“渐进时间复杂度”,简称为时间复杂度。
  2. 时间复杂度只保留最高项,忽略常数。
  3. 常见算法的复杂度O(n) O(n^2) O(nlogn) O(2^n)。

三、STL(Standard Template Library)

  1. 容器(Container),是一种数据结构,如string,vector,和quque ,以模板类的方法提供。为了访问容器中的数据,可以使用由容器类输出的迭代器;
  2. 迭代器(Iterator),提供了访问容器中对象的方法。例如,可以使用一对迭代器指定list或vector中的一定范围的对象。(迭代器就如同一个指针,C++的指针也是一种迭代器)
  3. 算法(Algorithm),是用来操作容器中的数据的模板函数。例如,sort 、reverse、 next_permutation等等。

四、容器的具体使用

  1. string
    动态长度字符串
    构造函数: string s1=“1234”
    迭代器:string::iterator it=s1.begin()
    常用函数:clear() length() push_back() append() find() erase()

  2. vector
    (动态数组,内存连续)
    构造函数:
    vectorv1;vectorv2(“1234”);vecotrv3(5,2);vectorv4(v3);
    常用函数:push_back() pop_back() front() back() insert() erase() size()
    可以随机访问 访问O(1) 删除O(n)

  3. queue (队列,FIFO)
    先进先出 打印机、排队队伍
    构造函数:queuequ;
    常用函数:push() pop() front() back() size() empty()

  4. stack
    (堆栈,FILO)
    构造:stackst
    常用方法:push(); pop(); top(); size(); empty();

  5. set
    (集合)
    构造:setse
    内部元素有序排列,且不会重复
    常用方法:find(); erase(); size(); clear();insert();count();

  6. map
    (建立key-value对应关系)
    构造:map<int,int>mp //<key的类型,value的类型>
    随机访问:像数组一样通过mp[key]访问对应value;对同一key赋值会覆盖旧值,若该key并无对应value则返回0
    常用方法:find(); erase(); size(); clear();

  7. list
    (双向链表)
    构造:listli
    不支持随机访问
    常用方法:push_back(); push_front(); pop_back() ;pop_front(); insert(); erase();

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值