这是创建一个二维数组v,然后向v中末尾添加一个新的空vector
vector<vector<int>>v;
v.push_back(vector<int>());
vector(Iterator first, Iterator last); // 用迭代器创建vector容器。
arr+5是到第5个,也就是vec[4],arr+1是指在空的基础上+1,也就是vec[0]可以存放元素。
int arr[] = {1, 2, 3, 4, 5};
vector<int> vec(arr, arr + 5);
std::max_element
函数来查找 nums
中的最大值及其下标
使用 std::distance
函数来计算下标位置
auto max_it = std::max_element(nums.begin(), nums.end());
int max_idx = std::distance(nums.begin(), max_it);
查找删除指定值
auto it = find(v.begin(),v.end(),key);
if (it != v.end())
v.erase(it);
将字符类型转换成整数类型
string digits = "123";
int i = stoi(digits.substr(0, 1));
降序排序
static bool compare(int a, int b) {
return a > b;
}
sort(s.begin(), s.end(), compare);
初始化数组,同一为一个数
std::vector<int> nums;
std::fill(nums.begin(), nums.end(), 1);
元组的第一个元素进行排序
static bool cmp(const vector<int>& a, const vector<int>& b) {
return a[0] > b[0];
}
第一个元素降序,第二个元素升序
static bool cmp(const vector<int>& a, const vector<int>& b) {
if (a[0] == b[0]) return a[1] < b[1];
return a[0] > b[0];
}
创建二维数组初始化大小
vector<vector<int>>dp(m, vector<int>(n, 0));
- 使用
lower_bound()
函数,找第一个大于等于nums[i] + k
的元素, 然后进行比较, 若相等,则结果加1(532) -
auto lb = lower_bound(nums.begin() + i + 1, nums.end(), nums[i] + k); if (lb != nums.end() && *lb == nums[i] + k) ans++;