蒟蒻の笔记

STL二分查找函数

int N = 10, a[] = {1, 1, 2, 4, 5, 5, 7, 7, 9, 9}, x = 5;
int i = lower_bound(a, a + N, x) - a, j = upper_bound(a, a + N, x) - a;
 a[0] ~ a[i - 1] 为小于x的元素, a[i] ~ a[j - 1] 为等于x的元素,
 a[j] ~ a[N - 1] 为大于x的元素
vector//超详解

v.push_back( )在数组的最后添加一个数据

v.pop_back( )去掉数组的最后一个数据

v.at(3)得到编号为3位置的数据

v.begin( )得到数组头的指针

v.end( )得到数组的最后一个单元+1的指针

v.front( )得到数组头的引用

v.back( )得到数组的最后一个单元的引用

v.max_size( )得到vector最大可以是多大

v.size( )当前使用数据的大小

v.resize( )改变当前使用数据的大小,如果它比当前使用的大,者填充默认值

v.reserve( )改变当前vecotr所分配空间的大小

v.erase( )删除指针指向的数据项

v.clear( )清空当前的vector

v.empty( )判断vector是否为空

 v.swap( )与另一个vector交换数据

 __int128//大整数(10的18次方)

 

#include<iostream>
using namespace std;
inline __int128 read()
{
    __int128 x = 0, f = 1;
    char ch = getchar();
    while (ch < '0' || ch>'9')
    {
        if (ch == '-')
            f = -1;
        ch = getchar();
    }
    while (ch >= '0' && ch <= '9')
    {
        x = (x << 1) + (x << 3) + (ch - '0');
        ch = getchar();
    }
    return x * f;
}
void print(__int128 x)
{
    if (x < 0)
    {
        putchar('-');
        x = -x;
    }
    if (x > 9)
        print(x / 10);
    putchar(x % 10 + '0');
}
int main()
{
    __int128 x = read();
    print(x);
    return 0;
}
int128

 特殊队列

zeller公式

 

 c-->年份前两位

y-->年份后六位

m-->月份

d-->日

[ ]代表取整,即只要整数部分

注意!!!1,2月要当成上一年的13,14月计算

即2010年2月2日-->2009年14月2日

posted @ 2023-08-29 08:06  yeahhhhhh  阅读(15)  评论(0)    收藏  举报