C++的数据类型操作 - vector
使用C++做算法题时,与vector相关的常用操作:
C++中的vector类似于Java中的ArrayList
| 头文件 | #include <vector> |
| 创建:空间大小为5 | vector<int> v(5); // 5个元素,但可以扩充,默认初始化。 |
| 直接初始化 | vector |
| 创建:空间大小为5,赋值为1 | vector |
| 改值 | 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.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为迭代器 |

浙公网安备 33010602011771号