コード例 #1
0
ファイル: template.cpp プロジェクト: neo1218/Algo
BoVector<T> operator* (const BoVector<T>& bv1, const BoVector<T>& bv2) {
    // 相乘的两个BoVector需要大小相同
    BoVector<T> rv;
    for (int i=0; i<bv1.getsize(); i++) {
        rv.push(bv1.get(i)*bv2.get(i)); // 类型必须支持*操作
    }
    return rv;
}
コード例 #2
0
BoVector<BoVectorType> operator*(BoVector<BoVectorType>&rhs1, BoVector<BoVectorType>&rhs2)
{
    BoVector<BoVectorType> return_element;
    for(int i = 0; i < rhs1.getSize(); i++)
    {
        return_element.push(rhs1.get(i) * rhs2.get(i));
    }
    
    return return_element;
}
コード例 #3
0
int main(int argc, const char * argv[])
{
    cout << square<int>(5) << endl;
    cout << square<double>(5.5) << endl;
    
    BoVector<int> bv;
    bv.push(1);
    bv.push(2);
    bv.push(3);
    bv.push(4);
    bv.print_Vector();
    
    //square bv tries to square the vector by passing it as an argument
    //we overloaded the * operator for bv vector multiplication
    
    bv = square(bv);
    bv.print_Vector();

    
    return 0;
}
コード例 #4
0
ファイル: template.cpp プロジェクト: neo1218/Algo
int main(void) {
    // STL template 利用范型减少了因类型不同而重复的代码
    // 但是实际内存中存储的任然是 code bloat
    cout << square<int>(5) << endl;
    cout << square<double>(5.5) << endl;

    BoVector<int> bv;
    bv.push(1); bv.push(3); bv.push(1); bv.push(4);
    bv.print();
    bv = square< BoVector<int> >(bv);
    bv.print();
    return 0;
}