标签:void 函数的参数 输入 bcd end size_t wap 引用 operator
begin()返回指向第一个元素的迭代器
end()返回指向最后一个元素的迭代器
rbegin()返回指向最后一个元素的迭代器
rend()返回指向第一个元素的迭代器
size()返回容器的元素的个数
max_size()返回容器的最大的元素的个数
resize()重新调整容器的容量,无论原来的容量是大于还是小于后来的恶容量都可以
myvector.resize(5);将容器的容量调整为5,如果变短了就直接删除多余的元素,长了就用0将剩余的空间填满
myvector.resize(8,100);将容器的容量调整8,并将多出来的位置用100表示
myvector.resize(12);将容器的容量调整为12,多出的空间用0填充
capacity()返回这个容器在内存空间中最多的连续空间
empty()测试这个容器是不是空的
reserve()重新调整容器的capacity
at(i)返回位置为i处得元素的引用,当超出容器的最后一个位置就抛出一个异常
front()返回第一个元素的引用
back()返回最后一个元素的引用
void assign ( InputIterator first, InputIterator last );将迭代器first和迭代器last之间的元素付给调用这个方法的容器
void assign ( size_type n, const T& u );将n个u付给容器
push_back()在容器的末尾添加元素
pop_back()删除容器最后面的一个元素
iterator insert ( iterator position, const T& x );在迭代器position的前面插入元素x
void insert ( iterator position, size_type n, const T& x );在position的前面插入n个x
template <class InputIterator>
void insert ( iterator position, InputIterator first, InputIterator last );将迭代器first和last之间的元素插入到position前面
iterator erase ( iterator position );删除迭代器position指向的元素
iterator erase ( iterator first, iterator last );删除迭代器first和last之间的元素,不包括last指向的元素
void swap ( vector<T,Allocator>& vec );交换两个容器的元素
void clear ( );清空容器当中的元素
begin()返回指向第一个元素的迭代器
end()返回指向最后一个元素的迭代器
rbegin()返回指向最后一个元素的迭代器
rend()返回指向第一个元素的迭代器
empty()测试map容器是不是空的
size()返回容器的大小
max_size()返回容器最大的容量,这个是相对于内存来讲的
insert()向容器中插入元素
erase(it)删除容器当中it指向的元素,it为迭代器
erase(‘c‘)删除容器中键值为‘c‘的元素
eras(it, mymap.end())删除容器中it和mymap.end()之间的元素,它们两个都是迭代器
foo.swap(bar)交换容器foo和bar中的元素
clear()清空容器
find(‘b‘)返回指向键值为‘b‘的的迭代器,没有的话就指向end()
count(‘c‘)查找键值为‘c‘的元素,在map中返回0或者1,0表示没有这个键值,1表示有,但是在mutimap中就是这个键值出现的次数
lower_bound(‘b‘)返回指向键值为‘b‘的迭代器,当没有这个键值时就返回空的迭代器
upper_bound(‘b‘)返回指向键值为‘b‘的下一个元素的迭代器,没有的话就返回空的迭代器
set容器(只存储值不相同的元素,并且按照从小到大的顺序排列)
iterator begin ();返回指向set容器第一个元素的迭代器
iterator end ();返回指向容器最后一个元素的迭代器
reverse_iterator rbegin();返回指向容器最后一个元素的迭代器
reverse_iterator rend();返回指向容器第一个元素的迭代器
bool empty ( ) const;测试容器是否为空
size_type size() const;计算容器当中元素的个数
size_type max_size () const;计算容器的最大容量
pair<iterator,bool> insert ( const value_type& x );将元素x插入到set容器中返回pair对象,first元素为指向插入的元素的迭代器,second元素为指示插入成功与否的bool值
iterator insert ( iterator position, const value_type& x );将x插入
template <class InputIterator>
void insert ( InputIterator first, InputIterator last );将first与last只见到恶元素插入到容器中
void erase ( iterator position );删除position位置处得元素
size_type erase ( const key_type& x );删除值为x的元素
void erase ( iterator first, iterator last );删除迭代器first和last之间的元素
void swap ( set<Key,Compare,Allocator>& st );交换两个set容器的元素
void clear ( );清空set容器
bool empty ( ) const;测试栈是不是空的返回1表示空0表示非空
size_type size ( ) const;返回当前栈的元素的个数
value_type top ( );返回当前的栈顶元素,不删除这个元素
const value_type top ( ) const;返回栈顶元素的const引用
void push ( const T& x );将当前的元素x入栈
void pop ( );删除栈顶元素
bool empty ( ) const;测试当前队列是不是空,0表示空,1表示非空
size_type size ( ) const;队列的元素的个数
value_type& front ( );返回队首元素的引用
const value_type front ( ) const;返回队首元素的const值
value_type& back ( );返回队尾元素的引用
const value_type& back ( ) const;返回队尾元素的const值
void push ( const T& x );将x入队列
void pop ( );删除队首元素
size()
empty()
clear()
begin()/end()
++, -- 返回前驱和后继,时间复杂度 O(logn)
set/multiset
insert() 插入一个数
find() 查找一个数
count() 返回某一个数的个数
erase()
(1) 输入是一个数x,删除所有x O(k + logn)
(2) 输入一个迭代器,删除这个迭代器
lower_bound()/upper_bound()
lower_bound(x) 返回大于等于x的最小的数的迭代器
upper_bound(x) 返回大于x的最小的数的迭代器
map/multimap
insert() 插入的数是一个pair
erase() 输入的参数是pair或者迭代器
find()
[] 注意multimap不支持此操作。 时间复杂度是 O(logn)
lower_bound()/upper_bound()
bitset<10000> s;
~, &, |, ^
>>, <<
==, !=
[]
count() 返回有多少个1
any() 判断是否至少有一个1
none() 判断是否全为0
set() 把所有位置成1
set(k, v) 将第k位变成v
reset() 把所有位变成0
flip() 等价于~
flip(k) 把第k位取反
size()
empty()
clear()
front()/back()
push_back()/pop_back()
push_front()/pop_front()
begin()/end()
和队列基本操作相同:
top 访问队头元素
empty 队列是否为空
size 返回队列内元素个数
push 插入元素到队尾 (并排序)
emplace 原地构造一个元素并插入队列
pop 弹出队头元素
swap 交换内容
定义成小根堆的方式:
priority_queue<int, vector<int>, greater<int>> q;
定义成大根堆的方式:
priority_queue<int, vector<int>, less<int>> q;
用pair做优先队列元素:
priority_queue<pair<int, int> > a;
规则:pair的比较,先比较第一个元素,第一个相等比较第二个。
用自定义类型做优先队列元素:
struct node {
int a,b,c;
//友元方式进行strut函数的重载 可以统一应用于stl
friend bool operator < (node s1,node s2) {
//大根堆 反过来就是小根堆
if(s1.a!=s2.a) return s1.a<s2.a;
else if(s1.b!=s2.b) return s1.b<s2.b;
else return s1.c<s1.c;
}
};
priority_queue<node> q;
tolower(char c)函数,tolower()函数的参数是字符类型。
toupper(char c)函数,toupper()函数的参数也是字符类型。
strlwr()将字符串变小写
strupr()将字符串变大写
cctype头文件增加:
isdigit() 用来判断一个字符是否是数字。
isalnum() 用来判断一个字符是否为英文字母或数字,相当于 isalpha(c) || isdigit(c)
isalpha() 用来判断一个字符是否是英文字母,相当于 isupper(c)||islower(c)
fabs(double x)
:对double类型变量取绝对值。
floor(double x)
: 对double 类型变量向下取整
ceil(double x)
: 对double 类型变量向上取整
pow(double x,double y)
: 求 x^y
sqrt(double x)
: 对double 类型变量求算术平方根。
log(double x)
: 对double 类型变量求以自然对数为底的对数。
round(double x)
: 对double 类型变量x进行四舍五入。
流输入输出函数,sscanf可以实现一次性的多个分割:
比如:
将字符数组str中的内容按 "%d:%lf,%s"的格式
写到int型变量n、double型变量db、char型数组变量str2中。
sscanf(str,"%d:%lf,%s",&n,&db,&str2);
相对应的反操作:
sprintf(str,"%d:%lf,%s",n,db,str2);
string a="abcdeffdfsfsd";
string b=string(a,5);
cout<<b;
最终输出的是:ffdfsfsd
vector<int> sq;
for(int v : sq) //v=sq[i]
vector<vector<int>> sq;
for(auto it : sq) //it=sq[i]
其他容器类似
传送容器的时候尽量用引用!!!
标签:void 函数的参数 输入 bcd end size_t wap 引用 operator
原文地址:https://www.cnblogs.com/coderJ-one/p/14492317.html