Song - 「星の在り処」 - 空の轨迹

嗯。。结尾有阿姨洗铁路

君の影 星のように
ki mi no ka ne / ho xi no you ni
朝に溶けて消えていく
a sa ni to ke de / ki ye de you gu
行き先を失くしたまま
i ki sa ki wo / na ku xi ta ma ma
想いは溢れてくる
o mo yi wa a / fu re te ku ru

强さにも弱さにも
tsu you sa ni mo / you wa sa ni mo
この心は向き合えた
ko no ko ko ro wa / mu ki a e ta
君とならどんな明日が
ki mi to na ra / don na a xi ta ga
来ても怖くないのに
ki te mo ku wa / ku na i no ni

二人步いた时を
fu ta yi a lu i / ta to ki wo
信じていて欲しい
xi n ji de i te / ho xi i

真实も嘘もなく
xi n ji zu mo / lu so mo na ku
夜が明けて朝が来る
yu ru ga a ke te / a sa ga ku lu
星空が朝に溶けても
ho xi so ra ga / a sa ni to ke te mo
君の辉きはわかるよ
ki mi no ka na / ya ki wa wa / ka ru you

さよならを知らないで
sa you na ra wo / xi lu la na i de
梦见たのは 一人きり
you me mi ta no wa / hi to li ki li
あの顷の 君の目には
a no ko ro no / ki mi no me ni wa
何が映っていたの?
na ni ga wu zi / wu te i ta wo?

二人つないだ时を
hu ta li zu na i / da to ki wo
谁も消せはしない
da re mo ke se wa / xi ta i

孤独とか痛みとか
ko no ku to ka / i ta mi to ka
どんな君も感じたい
do n na ki mi mo / ka lu ji ta i
もう一度 见つめ合えば
mo ou i ji do / mi zi me a e ne ma
愿いはきっと叶う
ne ga yi ma ki / ye do ka ma a wu

夜明け前 まどろみに
you wa ke ma ei / ma do lou re ni
风が颊を 流れていく
ka ze ga bo wo / na ga re te ku
君の声 君の香りが
ki mi no ko ei / ki mi no ga wo ri ba
全てを包んで满ちていく
se be de wu zi / zi wu n te mi qi te gu

思い出を羽ばたかせ
o mo i de wo / ha ba ta ka se
君の空へ舞い上がる
ki mi no so ra e / ma i a ga lu
星空が朝に溶けても
ho xi so ra ga / a sa ni to ke te mo
君の辉きはわかるよ
ki mi no ka ga / ya ki wa wa / ka ru you

爱してる ただそれだけで
a i xi te lu / ta da so re da ge de
二人はいつかまた会える
fu ta ri wa i / t zu ka ma da / a te lu

顺便放上冷鸟大大的中文填词版本~

《Essential C++》练习题4.5解答

/*
Essential C++ Exercise 4.5

实现一个4*4的Matrix class,至少提供以下接口:矩阵加法、矩阵减法、矩阵乘法、打印函数printf()、复合运算符+=、以及一组支持下标操作的function call 运算符,像下面这样:
    float& operator() (int row, int column);
    float operator() (int row, int column) const;

请提供一个default constructor,可选择性地接受16个数据值。再提供一个default constructor,可接受一个拥有16个元素的数组。
你不需要为此class提供 copy constructor、copy assignment operator、destructor。

aprikyblue
2016.4.16
*/

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>

template <typename T>
class Matrix {
public:
    Matrix(T v1 = 0, T v2 = 0,
           T v3 = 0, T v4 = 0,
           T v5 = 0, T v6 = 0,
           T v7 = 0, T v8 = 0,
           T v9 = 0, T v10 = 0,
           T v11 = 0, T v12 = 0,
           T v13 = 0, T v14 = 0,
           T v15 = 0, T v16 = 0)
        : values_ {v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16}
        {};
    Matrix(const std::vector<T> &values)
    : values_{}
    {
        std::copy(values.begin(), values.end(), values_);
    };
    Matrix(const T *values)
    : values_{}
    {
        std::copy(values, values + _row*_column, values_);
    }
    Matrix operator+(const Matrix &rhs) const
    {
        T values[_row][_column];
        std::transform(rhs.values_, rhs.values_ + _row*_column, values_, values, plus<T>() );
        return Matrix(&values[0][0]);
    }
    Matrix operator-(const Matrix &rhs) const
    {
        T values[_row][_column];
        std::transform(rhs.values_, rhs.values_ + _row*_column, values_, values, mins<T>() );
        return Matrix(values);
    }
    void printf() const
    {
        std::cout << "The Matrix has " << _row << "*" << _column << " values: " << std::endl;
        std::copy(values_, values_ + _row*_column, std::ostream_iterator<T>(std::cout, " "));
        std::cout << std::endl;
    }
    Matrix& operator+=(const Matrix &rhs)
    {
        std::transform(rhs.values_, rhs.values_ + _row*_column, values_, plus<T>() );
        return *this;
    }
    Matrix& operator-=(const Matrix &rhs)
    {
        std::transform(rhs.values_, rhs.values_ + _row*_column, values_, mins<T>() );
        return *this;
    }
    T& operator() (int row, int column)
    {
        return values_[row][column];
    }
    T operator() (int row, int column) const
    {
        return values_[row][column];
    }

private:
    static const int _row = 4;
    static const int _column = 4;
    T values_[_row][_column];
};


int main()
{
    using namespace std;
    Matrix<float> test(1, 14 ,78, 478, 5);
    (test+test+test).printf();
    test.printf();
    test+=test;
    test.printf();
    test(1,2)  = 6666666;
    test.printf();
    const Matrix<float> t4(test);
    t4.printf();
    (t4+test+test).printf();
    vector<float> t {48565,8498,9,4156,4,56,89,4,156,84,1,561};
    Matrix<float> test2(t);
    test2.printf();

}
";}