刷题常用函数
🍅 sort()
template< class RandomIt, class Compare >
constexpr void sort( RandomIt first, RandomIt last, Compare comp );
🍅 max()
template<class T, class Compare>
const T& max(const T& a, const T& b, Compare comp)
{
return (comp(a, b)) ? b : a;
}
🍅 accumulate()
有三个参数(前三个)和四个参数的版本
template<class InputIt, class T, class BinaryOperation>
constexpr // since C++20
T accumulate(InputIt first, InputIt last, T init, BinaryOperation op);
🍅 std::vector<T,Allocator>::insert
iterator insert( const_iterator pos, size_type count, const T& value );
template< class InputIt >
constexpr iterator insert( const_iterator pos, InputIt first, InputIt last );
🍅 std::vector<T,Allocator>::assign
例:
vector<int> nums{1,2,5,3,-9,5,3};
//非降序 非升序排序
sort(nums.begin(),nums.end());
sort(nums.begin(),nums.begin()+3,greater<>());
//两数间较大值
int max_num = max(2,3);
//累加, 基数为0
int sum = accumulate(nums.begin(),nums.begin()+4,0);
//累乘, 基数为1
int sum = accumulate(nums.begin(),nums.begin()+4,1,std::multiplies<int>());
//用于vector
//在迭代器指向的位置前插入一个2,返回新插入2的位置
auto it = nums.begin();
it = nums.insert(it,2); //2,1,2,5,3,-9,5,3
//插入3个2
nums.insert(it,2,5); //5,5,2,1,2,5,3,-9,5,3
//插入一段东西, 返回这一段东西的第一个元素的位置
vector<int>nums2(2,9);
nums.insert(it+1,nums2.begin(),nums2.end()); //5,9,9,5,2,1,2,5,3,-9,5,3
//替换内容
nums.assign(5,1); //1,1,1,1,1
nums.assign(nums2.begin(),nums2.end()); //9,9