C++的数据类型操作 - vector

使用C++做算法题时,与vector相关的常用操作:

C++中的vector类似于Java中的ArrayList

头文件 #include
创建:空间大小为5 vector v(5); // 5个元素,但可以扩充,默认初始化。
直接初始化 vector v = {1,2,3}; // 使用{}直接初始化。
创建:空间大小为5,赋值为1 vector v(5,1);
改值 v[i] = x;
插入 v.insert(v.begin(), x);
在最后位置增加(插入) v.push_back(x); // 没有push_front();pop_front();
在最后位置增加(插入) v.emplace_back(x); // 不创建临时变量
删除最后一个 v.pop_back();
查看空间大小 v.size();
清空内容 v.clear();
第一个数 迭代器 = v.begin(); //迭代器是指针需要取内容
第i个 v[i]; v.at(i); // v.at(i)与v[i]区别在于i越界时候会抛出异常,而v[i]会报错。
最后一个数下一个 v.at(i);
最后一个数下一个 v.end();
排序 #include , sort(v.begin(0, v.end());
逆序排序 sort(v.rbegin(0, v.rend());
复制 opy(1st.cbegin(),1st.end(),back_inserter(2st);
赋值 copy(1st.cbegin(),1st.end(),inserter(2st,2st.begin());
逆向复制 copy(1st.cbegin(),1st.end(),front_inserter(2st);
范围内的最大元素 迭代器 = max_element(num.begin(), num.end());
翻转 reverse(v.begin(), v.end());
改变大小 resize();
[l,r]范围内找最大值,max是迭代器 auto max = max_element(n.begin() + l, n.begin() + r + 1);// max为迭代器
找最大值的下标 int i = max - v.begin();// max为迭代器
上一篇:关于二项式反演


下一篇:基于protues仿真及stm32cubemx的基础外设使用-------串口中断