分类
C++

C++中的类的访问属性和继承方式

C++中的类的访问属性和继承方式

访问属性

成员属性 内部函数调用 子类调用 外部调用
public 成员
protected 成员 ×
private 成员 × ×

继承方式

继承方式 基类的public成员 基类的protected成员 基类的private成员 概括
public 继承 public protected 不可见 非私有成员保持不变
protected 继承 变为protected 变为protected 不可见 非私有成员变为protected
private 继承 变为private 变为private 不可见 非私有成员成为子类的私有成员
分类
Algorithm C++

二分搜索(C++泛型)

使用C++模板语法,遵循C++11标准

template <typename T, typename It>
It binary_search(It beg, It end, const T &val)
{
    auto mid = beg + (end - beg) / 2;
    while (mid != end && *mid != val)
    {
        if (val < *mid)
        {
            end = mid;
        }
        else
        {
            beg = mid + 1;
        }
        mid = beg + (end - beg) / 2;
    }
    return mid;
}

测试:

int main()
{
    vector<int> v{1, 2, 3, 4, 5, 6, 7};
    auto a = binary_search(v.begin(), v.end(), 7);
    if (a != v.end())
    {
        cout << *a << endl;
    }
    return 0;
}