cin与cout效率相比于scanf与printf低下
解决方案:
ios:sync_with_stdio(false);
cin.tie(0),cout.tie(0);
iterator
迭代器或begin()
、end()
函数)#include
#include
using namespace std;
int main() {
int a[3] = {1,2,3};
do{
cout<
补充:
3、
#include
中的fabs()
函数还可用于求浮点型变量的绝对值7、sort降序排序
bool cmp(int a, int b) { return a > b; } int main() { int a[5] = {55,44,33,22,11}; sort(a,a+5,cmp);//这里需要加上自己自定义的函数 }
void *memset(void *dest, int c, size_t count);
dest是目标内存块的指针,c是要设置的内容,count是要设置的字节数。
该函数会将dest指向的内存块的前count个字节都设置为c
在容器中,向量可以看成类似一维的存储形式或者理解为长度可变的数组
优点:
缺点:
//元素个数
int size = vectorname.size();
//判断是否为空
bool isEmpty = vectorname.empty();
//从vec1.back位置插入5个值为3的元素
vectorname.insert(vectorname.end(),5,3);
//删除末尾元素
vectorname.pop_back();
//删除之间的元素,其他元素前移
vectorname.erase(vec1.begin(),vec1.end());
//判断是否相等==、!=、>=、<=...
cout<<(vectorname==vectorname)?true:false;
//获取迭代器首地址
vector::iterator iter = vectorname.begin();
//获取const类型迭代器
vector::const_iterator c_iter = vectorname.begin();
//清空元素
vectorname.clear();
列表是用双向链表实现的,所谓的双向链表,指的是既可以从链表的头部开始搜索找到链表的尾部,也可以进行反向搜索,从尾部到头部
优点:
缺点:
构造空的list
list()
构造的list中包含n个值为val的元素
list (n, val)
拷贝构造函数
list (list& x)
用[first, last)区间中的元素构造list
list (first, last)
头插一个数据
push_front
头删一个数据
pop_front
尾插一个数据
push_back
尾删一个数据
pop_back
获取当前容器当中的元素个数
size
判断当前容器是否为空
empty
清空容器,清空后容器的size为0, 但是头结点(哨兵位)不会被清除
clear
容器当中的数据默认排为升序
sort
删除容器当中特定值的元素, 找到了就删(所有的都删除),没就不删
remove
删除容器当中连续的重复元素进行去重
unique
交换两个容器的内容
swap
得到容器中第一个元素的正向迭代器
begin
得到容器中最后一个元素的后一个位置的正向迭代器
end
得到容器中最后一个元素的后一个位置的反向迭代器
rbegin
得到容器中第一个元素的反向迭代器
rend
获取list容器当中的第一个元素
front
获取list容器当中的最后一个元素
back
list当中的insert函数支持三种插入方式:
#include
#include
#include
#include
using namespace std;
int main()
{
list lt;
lt.push_back(1);
lt.push_back(2);
lt.push_back(3);
list::iterator pos = find(lt.begin(), lt.end(), 2);
lt.insert(pos, 9); //在2的位置插入9
pos = find(lt.begin(), lt.end(), 3);
lt.insert(pos, 2, 8); //在3的位置插入2个8
vector v(2, 7);
pos = find(lt.begin(), lt.end(), 1);
lt.insert(pos, v.begin(), v.end()); //在1的位置插入2个7
}
erase
list当中的erase函数支持两种删除方式:
#include
#include
#include
#include
using namespace std;
int main()
{
list lt;
lt.push_back(1);
lt.push_back(2);
lt.push_back(3);
lt.push_back(4);
lt.push_back(5);
list::iterator pos = find(lt.begin(), lt.end(), 2);
lt.erase(pos); //删除2
pos = find(lt.begin(), lt.end(), 4);
lt.erase(pos, lt.end()); //删除4及其之后的元素
return 0;
}
一种双开口的“连续”空间的数据结构,从前后两端都可以进行数据的插入和删除操作,同时支持数据的快速随机访问
与vector相似的容器。专门用于保存字符。随机访问快。尾部插入删除快