欧美日韩亚-欧美日韩亚州在线-欧美日韩亚洲-欧美日韩亚洲第一区-欧美日韩亚洲二区在线-欧美日韩亚洲高清精品

金喜正规买球

開(kāi)發(fā)框架Qt使用教程:使用C++17 fold表達(dá)式實(shí)現(xiàn)高效的QString拼接

翻譯|使用教程|編輯:吳園園|2020-05-18 09:58:36.497|閱讀 669 次

概述:在C++中,不論使用標(biāo)準(zhǔn)庫(kù)(即STL)還是Qt,我們都習(xí)慣使用運(yùn)算符+實(shí)現(xiàn)字符串拼接。

# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>

相關(guān)鏈接:

Qt是目前最先進(jìn)、最完整的跨平臺(tái)C++開(kāi)發(fā)工具。它不僅完全實(shí)現(xiàn)了一次編寫(xiě),所有平臺(tái)無(wú)差別運(yùn)行,更提供了幾乎所有開(kāi)發(fā)過(guò)程中需要用到的工具。如今,Qt已被運(yùn)用于超過(guò)70個(gè)行業(yè)、數(shù)千家企業(yè),支持?jǐn)?shù)百萬(wàn)設(shè)備及應(yīng)用。

點(diǎn)擊下載Qt最新版

在C++中,不論使用標(biāo)準(zhǔn)庫(kù)(即STL)還是Qt,我們都習(xí)慣使用運(yùn)算符+實(shí)現(xiàn)字符串拼接。我們可以編寫(xiě)如下代碼:

QString statement{"I'm not"};
QString number{"a number"};
QString space{" "};
QString period{". "};
QString result = statement + space + number + period;

但這會(huì)有一個(gè)很大的缺陷:不必要地產(chǎn)生臨時(shí)的中間結(jié)果。也就是說(shuō),在前面的示例中,我們有一個(gè)臨時(shí)字符串來(lái)保存statement + space的結(jié)果,然后該字符串與number拼接起來(lái),這會(huì)產(chǎn)生另一個(gè)臨時(shí)字符串。第二個(gè)臨時(shí)字符串再與period拼接,并產(chǎn)生最終結(jié)果字符串,最后銷(xiāo)毀前述所有臨時(shí)字符串。

這意味著我們有幾乎和運(yùn)算符+一樣多不必要的內(nèi)存分配和釋放。而且,還要多次拷貝相同的內(nèi)容。例如,statement字符串的內(nèi)容首先被復(fù)制到第一個(gè)臨時(shí)對(duì)象中,然后從第一個(gè)臨時(shí)對(duì)象復(fù)制到第二個(gè)臨時(shí)對(duì)象中,然后從第二個(gè)臨時(shí)對(duì)象復(fù)制到最終結(jié)果中。

開(kāi)發(fā)框架Qt使用教程:使用C++17 fold表達(dá)式實(shí)現(xiàn)高效的QString拼接

可以用一個(gè)效率高得多的方式,即創(chuàng)建一個(gè)字符串實(shí)例,預(yù)先分配最終所需的內(nèi)存,然后反復(fù)調(diào)用QString::append函數(shù)來(lái)逐個(gè)追加所有要拼接的字符串:

QString result;
result.reserve(statement.length() + number.length() + space.length() + period.length();
result.append(statement);
result.append(number);
result.append(space);
result.append(period);

或者,我們可以使用QString::resize替換QString::reserve,然后使用std::copy(或std::memcpy)把數(shù)據(jù)復(fù)制到其中(稍后我們將看到如何使用std::copy進(jìn)行字符串拼接)。這可能會(huì)稍微提高性能(取決于編譯器的優(yōu)化),因?yàn)镼String::append需要檢查字符串的容量是否足夠大以包含結(jié)果字符串。std::copyalgorithm沒(méi)有這個(gè)無(wú)用的額外檢查,這可能會(huì)給它一點(diǎn)優(yōu)勢(shì)。

這兩種方法都比使用運(yùn)算符+效率高得多,但是如果每次我們想要拼接幾個(gè)字符串時(shí)都必須這樣寫(xiě)代碼會(huì)很煩人。

std::accumulate算法

在我們繼續(xù)討論Qt如何解決這個(gè)問(wèn)題之前,還有一個(gè)可行的方法:Qt 6中我們將引入一個(gè)C++ 17中的優(yōu)雅的特性,它可以解決這個(gè)問(wèn)題,這里就要介紹一下這個(gè)標(biāo)準(zhǔn)庫(kù)中最重要和最強(qiáng)大的算法之一:std::accumulate。

假設(shè)我們有一個(gè)字符串序列(例如QVector),我們希望將它們拼接起來(lái),而不是將它們放在單獨(dú)的變量中。

使用std::accumulate的字符串拼接代碼如下:

QVector<QString> strings{ . . . };
std::accumulate(strings.cbegin(), strings.cend(), QString{});

該算法實(shí)現(xiàn)了您期望的功能——它從一個(gè)空的QString開(kāi)始,并將向量中的每個(gè)字符串相加,從而創(chuàng)建一個(gè)拼接字符串。

然而由于在默認(rèn)情況下std::accumulate在內(nèi)部使用運(yùn)算符+,因此這與我們最初使用運(yùn)算符+進(jìn)行拼接的示例一樣效率低下。

為了像前一節(jié)一樣優(yōu)化這個(gè)實(shí)現(xiàn),我們可以只使用std::accumulate來(lái)計(jì)算結(jié)果字符串的大小,而不使用它進(jìn)行整體拼接:

QVector<QString> strings{ . . . };
QString result;
result.resize(
    std::accumulate(strings.cbegin(), strings.cend(),
                    0, [] (int acc, const QString& s) {
                        return s.length();
                    }));

這次,std::accumulate從初始值0開(kāi)始,對(duì)于字符串向量中的每個(gè)字符串,它將該初始值的長(zhǎng)度相加,最后返回向量中所有字符串的長(zhǎng)度總和。

這就是std::accumulate對(duì)大多數(shù)人的意義——某種求和算法。但這只是一種相當(dāng)粗淺的認(rèn)知。

在第一個(gè)例子中,我們對(duì)向量中的所有字符串進(jìn)行了求和(即拼接字符串)。但第二個(gè)例子有點(diǎn)不同。我們實(shí)際上不是求向量元素的和。該向量包含QString,而我們求和的是int。

這就是std::accumulate功能強(qiáng)大的原因:事實(shí)上,我們可以向它傳遞一個(gè)自定義操作。該操作函數(shù)輸入先前的累積值和源集合的一個(gè)元素,并生成新的累積值。std::accumulate第一次調(diào)用操作函數(shù)時(shí),會(huì)把初始值作為累積值傳遞給它,同時(shí)把源集合的第一個(gè)元素傳遞給它。該操作函數(shù)將計(jì)算出新的累積值并將其與源集合的第二個(gè)元素一起傳遞給操作函數(shù)的下一個(gè)調(diào)用。這將重復(fù),直到處理完整個(gè)源集合,算法將返回最終操作函數(shù)調(diào)用的結(jié)果。

如前一個(gè)代碼片段所示,累積值甚至不需要與向量中的元素具有相同的類(lèi)型。當(dāng)累積值是整數(shù)時(shí),源向量是一個(gè)字符串向量。

我們可以利用它來(lái)做一些有趣的事情。

前面提到的std::copy算法接收一個(gè)被復(fù)制的序列(是一對(duì)輸入iterator)和復(fù)制目標(biāo)(是一個(gè)輸出iterator),它指向拷貝的目標(biāo)集合和起始點(diǎn)。算法返回一個(gè)iterator,指向復(fù)制目標(biāo)集合中最后一個(gè)被復(fù)制項(xiàng)之后的元素。

這就說(shuō)明,如果我們使用std::copy將一個(gè)源字符串的數(shù)據(jù)復(fù)制到目標(biāo)字符串中,我們應(yīng)該讓iterator指向?qū)⒁?放字符串?dāng)?shù)據(jù)的位置。

于是,我們就有了一個(gè)這樣的函數(shù):它接受一個(gè)字符串(作為一對(duì)iterator)和一個(gè)輸出迭代器,并為我們返回一個(gè)新的輸出迭代器。這就可以用于std::accumulate的操作函數(shù),來(lái)實(shí)現(xiàn)高效的字符串拼接了: 

QVector<QString> strings{ . . . };
QString result;
result.resize( . . . );

std::accumulate(strings.cbegin(), strings.cend(), result.begin(),
                [] (const auto& dest, const QString& s) {
                    return std::copy(s.cbegin(), s.cend(), dest);
                });
對(duì)std::copy的第一次調(diào)用將把第一個(gè)字符串復(fù)制到result.begin()指向的目標(biāo)。它將返回result字符串中最后一個(gè)復(fù)制字符之后的iterator,然后vector中的第二個(gè)字符串將從這個(gè)位置開(kāi)始復(fù)制。之后再?gòu)?fù)制第三個(gè)字符串,依此類(lèi)推。

最終,我們得到一個(gè)拼接后的字符串。

遞歸表達(dá)式模板

現(xiàn)在我們可以回來(lái)討論如何用Qt的運(yùn)算符+實(shí)現(xiàn)高效的字符串拼接了。

QString result = statement + space + number + period;

我們已經(jīng)知道,字符串拼接的性能問(wèn)題源于C++會(huì)分步解析上述表達(dá)式,多次調(diào)用運(yùn)算符+,并且每次調(diào)用都會(huì)產(chǎn)生新的QString實(shí)例。

 雖然我們不能改變C++的解析過(guò)程,但是我們可以使用一種稱(chēng)為表達(dá)式模板(expression templates)的方式來(lái)延遲結(jié)果字符串的實(shí)際計(jì)算,直到整個(gè)表達(dá)式解析全部完成。這需要將運(yùn)算符+的返回類(lèi)型從原來(lái)的QString改為一種自定義類(lèi)型,該類(lèi)型只存儲(chǔ)要被拼接的字符串,而不實(shí)際執(zhí)行拼接。

實(shí)際上,這正是Qt從4.6版本開(kāi)始且當(dāng)快速字符串拼接功能被激活后的運(yùn)行機(jī)制。運(yùn)算符+將返回名為QStringBuilder的隱藏模板類(lèi)的實(shí)例而不是QString。QStringBuilder模板類(lèi)只是一個(gè)簡(jiǎn)單形式,它包含對(duì)傳遞給運(yùn)算符+的參數(shù)引用。

基本上,就產(chǎn)生了一個(gè)更復(fù)雜的版本:

template <typename Left, typename Right>
class QStringBuilder {
    const Left& _left;
    const Right& _right;
};

拼接多個(gè)字符串時(shí),您將得到一個(gè)更復(fù)雜的類(lèi)型,其中多個(gè)QStringBuilder相互嵌套。像這樣:

QStringBuilder<QString, QStringBuilder<QString, QStringBuilder<QString, QString>>>

這種類(lèi)型只是用了一種復(fù)雜的方式來(lái)表達(dá)“我有四個(gè)字符串需要拼接”。

當(dāng)我們請(qǐng)求將QStringBuilder轉(zhuǎn)換為QString時(shí)(例如,通過(guò)將其分配給結(jié)果QString),它將首先計(jì)算所有包含的字符串的總大小,然后將分配該大小的QStringinstance,最后,它將字符串逐個(gè)復(fù)制到結(jié)果字符串中。

從本質(zhì)上講,它的功能與我們之前做的完全相同,但它是自動(dòng)完成的,完全不需要我們費(fèi)力。

可變參模板(Variadic templates)

當(dāng)前QStringBuilder實(shí)現(xiàn)的問(wèn)題是:它通過(guò)嵌套實(shí)現(xiàn)能容納任意數(shù)量字符串的容器。每個(gè)QStringBuilder實(shí)例可以恰好包含兩個(gè)項(xiàng),可以是字符串或是其他QStringBuilder實(shí)例。

這意味著QStringBuilder的所有實(shí)例都是一種二叉樹(shù),其中QString是葉節(jié)點(diǎn)。每當(dāng)需要對(duì)包含的字符串執(zhí)行某些操作時(shí),QStringBuilder需要處理其左子樹(shù),然后遞歸地處理右子樹(shù)。

除了使用二叉樹(shù),我們還可以使用可變參模板(C++ 11引入,設(shè)計(jì)QStringBuilder時(shí)還沒(méi)有)。可變參模板允許我們創(chuàng)建具有任意數(shù)量的模板參數(shù)的類(lèi)和函數(shù)。

這意味著,通過(guò)使用std::tuple(元組,C++11引入的新特性)我們可以創(chuàng)建一個(gè)QStringBuilder模板類(lèi),包含任意多個(gè)字符串:

template <typename... Strings>
class QStringBuilder {
    std::tuple<Strings...> _strings;
};
每當(dāng)獲得一個(gè)新的字符串且要添加到QStringBuilder時(shí),我們只需使用std::tuple_cat將兩個(gè)元組拼接起來(lái)(通過(guò)運(yùn)算符%而不是運(yùn)算符+,因?yàn)镼String和QStringBuilder支持此運(yùn)算符):

template <typename... Strings>
class QStringBuilder {
    std::tuple<Strings...> _strings;

    template <typename String>
    auto operator%(String&& newString) &&
    {
        return QStringBuilder<Strings..., String>(
            std::tuple_cat(_strings, std::make_tuple(newString)));
    }
};

折疊表達(dá)式

大概思路就是這樣,但問(wèn)題是我們?nèi)绾翁幚砜勺儏⒛0宓膮?shù)包(即Strings ...)。

在C++ 17中,我們得到了一個(gè)新的結(jié)構(gòu)體,用于處理可變參模板的參數(shù)包,稱(chēng)為折疊表達(dá)式(Fold expressions)。

折疊表達(dá)式的一般形式如下(運(yùn)算符+可以替換為其他一些二元運(yùn)算符,如*,%等):

(init + ... + pack)
或者

(pack + ... + init)

第一個(gè)變體稱(chēng)為左折疊表達(dá)式,將操作視為左結(jié)合性(即從左到右優(yōu)先結(jié)合),第二個(gè)變體稱(chēng)為右折疊表達(dá)式,因?yàn)樗鼘⒉僮饕暈橛医Y(jié)合性(即從右到左優(yōu)先結(jié)合)。

如果想使用折疊表達(dá)式拼接模板參數(shù)包中的字符串,可以這樣做:

template <typename... Strings>
auto concatenate(Strings... strings)
{
    return (QString{} + ... + strings);
}

這將首先對(duì)初始值QString{}和參數(shù)包的第一個(gè)元素調(diào)用運(yùn)算符+。然后,它將根據(jù)上一次調(diào)用的結(jié)果和參數(shù)包的第二個(gè)元素調(diào)用運(yùn)算符+。以此類(lèi)推,直到處理完所有元素都。

聽(tīng)起來(lái)很熟悉,對(duì)吧?

可以發(fā)現(xiàn),它和std::accumulate的行為非常類(lèi)似。唯一的區(qū)別是std::accumulate算法是處理數(shù)據(jù)的運(yùn)行時(shí)序列(向量、數(shù)組、列表等),而折疊表達(dá)式處理的是編譯時(shí)序列,即可變參模板的參數(shù)包。

我們可以遵循與std::accumulate相同的步驟來(lái)優(yōu)化之前的拼接實(shí)現(xiàn)。首先,我們需要計(jì)算所有字符串長(zhǎng)度的和。這對(duì)于折疊表達(dá)式來(lái)說(shuō)非常簡(jiǎn)單:

template <typename... Strings>
auto concatenate(Strings... strings)
{
    const auto totalSize = (0 + ... + strings.length());
    . . .
}
當(dāng)折疊表達(dá)式展開(kāi)參數(shù)包時(shí),它將得到以下表達(dá)式:

0 + string1.length() + string2.length() + string3.length()

于是,我們得到了結(jié)果字符串的大小?,F(xiàn)在可以繼續(xù)分配一個(gè)能夠容納結(jié)果的字符串,并將源字符串逐個(gè)追加到該字符串中。

如前所述,折疊表達(dá)式可以與C++的二元運(yùn)算符一起使用。如果想為參數(shù)包中的每個(gè)元素執(zhí)行一個(gè)函數(shù),我們可以使用C和C++中最神奇的運(yùn)算符之一:逗號(hào)運(yùn)算符。

template <typename... Strings>
auto concatenate(Strings... strings)
{
    const auto totalSize = (0 + ... + strings.length());
    QString result;
    result.reserve(totalSize);

    (result.append(strings), ...);

    return result;
}

以上會(huì)為參數(shù)包中的每個(gè)字符串調(diào)用append函數(shù),最后返回拼接完成的字符串。

使用折疊表達(dá)式自定義運(yùn)算符

之前對(duì)std::accumulate采用的第二種方式有些復(fù)雜:我們必須提供一個(gè)自定義的累加操作函數(shù)。而累計(jì)值是目標(biāo)集合中的迭代器,它指向下一個(gè)字符串的復(fù)制位置。

如果我們想使用折疊表達(dá)式自定義操作函數(shù),那么就需要?jiǎng)?chuàng)建一個(gè)二元運(yùn)算符。就像我們傳遞給std::accumulate的lambda表達(dá)式一樣,該運(yùn)算符需要獲得一個(gè)輸出迭代器和一個(gè)字符串,它需要調(diào)用std::copy將字符串內(nèi)容復(fù)制到該迭代器,同時(shí)返回一個(gè)新的迭代器,該迭代器指向最后復(fù)制的字符之后的元素。

于是,我們重載了操作符<<:

template <typename Dest, typename String>
auto operator<< (Dest dest, const String& string)
{
    return std::copy(string.cbegin(), string.cend(), dest);
}
有了這個(gè)操作符,使用折疊表達(dá)式將所有字符串復(fù)制到目標(biāo)緩沖區(qū)就變得非常簡(jiǎn)單。初始值是目標(biāo)緩沖區(qū)的初始迭代器,我們將參數(shù)包中的每個(gè)字符串傳遞給操作符<<:

template <typename... Strings>
auto concatenate(Strings... strings)
{
    const auto totalSize = (0 + ... + strings.length());
    QString result;
    result.resize(totalSize);

    (result.begin() << ... << strings);

    return result;
}

折疊表達(dá)式和元組

現(xiàn)在,我們知道如何有效地拼接字符串集合,無(wú)論是使用向量還是可變模板參數(shù)包。

問(wèn)題是我們的QStringBuilder兩者都沒(méi)用。它將字符串存儲(chǔ)在std::tuple中,既不是可迭代集合,也不是參數(shù)包。

為了使用折疊表達(dá)式,我們需要參數(shù)包。我們可以創(chuàng)建一個(gè)包含從0到n-1的索引列表的參數(shù)包來(lái)代替包含字符串的參數(shù)包,稍后我們可以使用std::get來(lái)訪問(wèn)元組內(nèi)部的值。

通過(guò)std::index_sequence很容易創(chuàng)建這個(gè)參數(shù)包,該序列表示一個(gè)編譯時(shí)的整數(shù)列表。我們可以創(chuàng)建一個(gè)helper函數(shù),它以std::index_sequence<Idx…>作為參數(shù),然后在折疊表達(dá)式中使std::get<Idx>(_strings)逐個(gè)訪問(wèn)元組中的字符串。

template <typename... Strings>
class QStringBuilder {
    using Tuple = std::tuple<Strings...>;
    Tuple _strings;

    template <std::size_t... Idx>
    auto concatenateHelper(std::index_sequence<Idx...>) const
    {
        const auto totalSize = (std::get<Idx>(_strings).size() + ... + 0);

        QString result;
        result.resize(totalSize);

        (result.begin() << ... << std::get<Idx>(_strings));

        return result;
    }
};
我們只需要?jiǎng)?chuàng)建一個(gè)包裝函數(shù)來(lái)為元組創(chuàng)建索引序列,然后調(diào)用concatenateHelper函數(shù):

template <typename... Strings>
class QStringBuilder {
    . . .

    auto concatenate() const
    {
        return concatenateHelper(
            std::index_sequence_for<Strings...>{});
    }
};

總結(jié)

本文只討論了字符串拼接部分的實(shí)現(xiàn)。對(duì)于真正的QStringBuilder,還有很多東西,但是細(xì)節(jié)的實(shí)現(xiàn)作為博客文章閱讀來(lái)說(shuō)會(huì)變得有點(diǎn)繁瑣。

我們需要小心運(yùn)算符重載:比如像當(dāng)前的QStringBuilder實(shí)現(xiàn),我們必須使用std::enable_if以使其對(duì)Qt中的所有可拼接類(lèi)型都有效,而且這些操作符不會(huì)污染全局命名空間。

還需要用一種安全的方式處理傳遞給字符串拼接過(guò)程的臨時(shí)變量,就像QStringBuilder只存儲(chǔ)對(duì)字符串的引用,對(duì)于臨時(shí)字符串,這些引用很容易成為懸掛引用。

 能夠以更安全的方式處理傳遞給字符串連接的臨時(shí)變量也是有益的,因?yàn)镼StringBuilder只存儲(chǔ)對(duì)字符串的引用,在臨時(shí)字符串的情況下,這些引用很容易成為懸掛引用。

=====================================================

購(gòu)買(mǎi)Qt正版授權(quán)的朋友可以點(diǎn)擊""哦~~~

掃描關(guān)注慧聚IT微信公眾號(hào),及時(shí)獲取最新動(dòng)態(tài)及最新資訊


標(biāo)簽:

本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn

文章轉(zhuǎn)載自:

為你推薦

掃碼咨詢(xún)


添加微信 立即咨詢(xún)

電話咨詢(xún)

客服熱線
023-68661681

TOP
青青青手机国产在 | 日本精品一区在线观看 | 亚洲天堂色在线 | 日韩亚洲成a人片在线观看 国产日产成人免费视频在线观看 | 精产国品一二三产品区别在线 | 日本岛国在线观看网址 | 在线播放亚洲综合 | 在线观看视频资源 | 国产亚洲播放在线 | 一区二区不卡中文字幕在线 | 国产乱人视频在线观看播放1 | 泰国一级特黄在线观看大片 | 国产成视频在线观看 | 香蕉影视 | 男人猛躁进女人成人免 | 国产视频a区 | 欧美大片欧美激情性色a∨在线 | 欧美综合视频在线 | 欧美一级欧美三级在线观看 | 午夜免费福利 | 日本精品在线播放 | 日本3级视频 | 亚洲国产精品∨a在线看黑人 | 亚洲一卡2卡3卡4 | 成人欧美一区二区三区黑人免费 | 日韩在线一区二区三区观 | 亚洲精品中文字幕无乱码 | 一级电影免费 | 91视频免费下载 | 日本亚洲午夜电影 | 精品国产一区二区三区四不卡在线 | 国产网站大全在线观看 | 欧美国产日本高清不卡 | 国产欧美精品亚洲日本一区 | 日韩精品搭讪在线视频播放 | 欧美精品视频在线免费观看 | 成人专区一区二区三区四区 | 国产精品一品二区三区的使用体验 | 亚洲午夜日韩 | 天美麻花星空免费观看乡村版 | 成人全部免费观看1314色 | 国产精品网站在线观看免费传媒 | 欧美日韩国产在线激情 | 十分钟在线观看免费直播 | 午夜国产精品电影在线观看一区 | 欧美日韩中文在线视频 | 亚洲男人的天堂在线播放 | 精品国产综合色在线 | 国产91精品对自露脸全集观看 | 久99久精品 | 午夜免费福利 | 亚洲综合在线一 | 国产激情一区二区三区在线hd | 欧美精品视频手机在线视频 | 一二三四在线观看免费视频 | 悠久影视网网 | 日韩精品区一 | 影音先锋2025色资源网 | 在线观看免费精品国产第一区 | 欧美女同小视频在线网站 | 日韩精品一区二区三区vr | 成人免费午夜在线观看 | 国产v综合v亚洲欧美大另类 | 国产一区二区三区在线电影 | 最新亚洲人成网站在线 | 公交车被两根粗 | 欧美性白人极 | 电家庭影院午夜 | 在线观看日韩欧美一区二区 | 另类国产亚洲日韩 | 午夜伦伦 | 国产制服丝袜你 | 国产精品视频每日更新 | 国产精品自产拍在 | 最近中文字幕无吗高清免费视频 | aa中文字幕在线观看 | 日本一卡二卡三 | 天堂在线中文网www 女人的天堂a国产 | 亚洲综合成人精品成人精品 | 性欧美午夜高清在线观看 | 欧美日韩亚洲国内一区二区三区 | 国产激情一区二区三区 | 中文字幕亚洲第一 | 国产日产高清dvd碟片 | 国产在线91精品入口 | 国产精品成人不卡在线观看 | 国产又大又粗又长免费视频 | 三三电影网| 国产91丝袜在线播放动漫蜜月 | 免费观看亚洲人成网站 | 爱情岛亚洲论坛 | 国产一区二区三区高清视频 | 综合色就爱涩涩涩综合婷婷 | 青苹果乐园影院在线播放 | 在线精品91青草国产在线观看 | 午夜欧美性视频在线播放 | 成人午夜视频在线视频 | 亚洲欧美日韩国产精选在线观看 | 免费人成在线观看网站免费观看 | 少女韩国在线观看完整版免费 | 免费国产一区 | 日本精品一区二区三区高清 | 91精品电影 | 国产乱对白刺激视频 | 91精品国产免费青青碰在线 | 欧美成妇人吹潮在线播放 | 国内一点不卡在 | 中文字幕亚洲欧美一区 | 亚洲欧美综合在线天堂 | 在线亚洲高清揄拍自拍一品区 | 美女视频免费观看网站黄 | 中文天堂最新版资源 | 麻花传媒68xxx在线观看 | 国产自产亚洲 | 天堂资源最新在线 | 亚洲欧美专区 | 国产亚洲精品午夜高清影院 | 神马电影我不卡影院 | 国产妇女性爽视频免费 | 午夜成人影视 | 日本国产高清在线观看 | 男女爽爽午夜18污污影院 | 亚洲精品第一国产综合境 | 亚洲欧美一区二区三区不卡 | 中文字幕二区在线 | 日本96在线精品视频免费观看 | 国产真实乱子 | 一区二区中文字幕在线 | 伊人影视在线观看日韩 | 丫头13第一次真紧 | 热门电视剧免费在线观看 | 中文字幕国产日韩 | 俄罗斯性爱视频一区二区 | 丝袜美腿中文字幕 | 性爱国产精品福利在线 | 神马午夜电影网手机在线播 | 国语自产精品视频一区二区 | 日韩精品午 | 成在线人免费视频 | 国产玖玖在线观看 | 亚洲国产欧美日韩精品 | 学生精品国自产拍中文 | 国产欧美日韩va另类在 | 亚洲人成免费网站 | 亚洲国产一区二区在线观看 | 欧美亚洲另 | 国产免费看视频 | 在线精品国 | 亚洲中文字幕在线一区 | 亚洲高清不卡在线观看 | 欧美极品jizzhd欧美 | 国产精品福利社 | 国产日产欧产精品 | 免费大片aⅴ入口 | 国产黄在线观看免费观看 | 成年免费国产大片 | 午夜三级a三级 | 日本一区二区三区在线观看不卡 | 变态另类清纯唯美中文 | 一次处破女hd精品 | 天堂成人 | 99国产精品免费观看视频 | 国产日韩在线视频 | 亚洲成a人在线观看片 | 一区二区三区四区的在线视频 | 亚洲风情亚aⅴ在线发布 | 2025亚洲精品极品色在线 | 日韩欧美中文字幕在线第一页 | 新不夜城综合另类 | 亚洲精品一区二区不卡 | 日韩欧美综合一区二区三区 | 91免费看片 | 曰批视频免费观看完 | 国产乱了真 | 国产午夜爽爽窝窝在线观看 | 欧美日韩一区二区综合在线 | 91热成人精品国产免费 | 国产微信高清小视频在线播放 | 国产草莓 | 色无极影院亚洲专区 | 欧美亚洲视频一区 | 视频在线观看不卡 | 欧美色欧美亚洲高清在线观看 | 国产精品拍综合在线 | 成人国产亚洲欧美一区 | 午夜福利电影在线 | 国产亚洲免费在线观看 | 国产99视频在线观看免费 | 欧美日韩高清不卡一区二区三区 | 免费一级欧美大片在 | 欧美私人午夜影院 | 国语自产拍在线观看对白 | 国产精品欧 | 亚洲一日欧美日韩中文字幕 | 青柠影院免费观看电视剧高清 | 成年私人影院网 | 国产在线观看91精品不卡 | 国产欧美日韩综合一区 | 三级a在线视频观看永久 | 影音先锋2025色资源网 | 亚洲制服丝袜在线 | 强伦轩一区二区三区四区播放方式 | 在线精品91青草国产在线观看 | 日韩一区二 | 国产一区二区三区高清视频 | 成人日动漫卡一区二区三区动漫 | 国产欧美一区二区三区综合野 | 日本中文字幕高清7 | 午夜看片a福利 | 两个人免费视频观看高清视频 | 国产精品酒店在线精品 | 中文字幕在线观看2025 | 人成在线v网站 | 国产在线播精品第三 | 亚洲欧美一区二区三区电影 | 国产综合在线观看 | 国产日韩欧美一区二区三区精品 | 欧美精品+在线播放 | 国产精品午夜看片 | 国产欧美日韩精品综合第一区 | 国产精品一区二区精品视频导航 | 亚洲成年看片在线观看 | 欧美精品网站在 | 国产自在自线精品午夜视频 | 日韩精品亚洲成本人专区电影 | 午夜视频在线瓜伦 | 国产v亚| 国产voyeur精品偷窥222 | 在线a亚洲视频播放在线观看 | 国产精品自产拍在线观看中文 | 国产精品不卡在线观看 | 亚洲激情一区二区 | 国产色精品vr一区二区 | 色猫咪免费人成网站在线观看 | 91小电影| 热映电影票房 | 日本三级欧美三级 | 绮炫影院 | 国产日韩在线欧美视频 | 午夜成人影院 | 国产一区二区三区乱码 | 亚洲欧洲日本精品永久在线观看 | 亚洲一区二区天海 | 白虎视频污 | 国产永久在线观看 | 性xxxx18免 | 99免费精品视频 | 国产日韩精品一区在线观看 | 丰满的女房东在线观看6 | 最新中文字幕在线观看 | 免费精品国产自产拍在线观看 | 欧美激情区二区一区三 | 中文字幕午夜福利片亚洲 | 国产福利电影一区二 | 视频在线观看不卡免费 | 宅男色影视亚洲人在线 | 92午夜福利合集10 | 亚洲国产精品yw在线观看 | 好男人好资源影视在线 | 亚洲日韩精品欧美一区二区 | 国产精品自拍视频 | 成年女人免费碰碰视频 | 日韩中文免费视频 | 亚洲高清aⅴ日本欧美视频 欧美另类69 | 国产午夜福利一区在线观看 | 精品动漫福利h视频在线观看 | 国产国拍亚洲精品永久不卡 | 精品一区二区视频免费看 | 最近中文字幕免费高清mv视 | 色色福利| 欧美一级在线观看 | 亚洲精品视频免费看 | 亚洲美精品二区性爱 | 日本免费一区二区在线 | 欧美高清免费一 | 欧美老年人草逼视频 | 精品二区三区三级日韩人妖 | 国产原创剧情经理在线播放 | 亚洲日韩国产欧 | 玖玖国产视频拍拍拍 | 国产乱子经典视 | 日韩一区二区三区四区区区 | 国产v视频| 日韩欧美亚洲一区二区三区四 | 二区三区国产亚洲综合 | 91网站在线播放 | 自产国产一区二区 | 亚洲欧美日本韩国在线观看 | 综合另类小说欧美另类图片 | 日韩中文字幕在线观看 | 另类国产女王 | 色综合婷婷在线观看66 | 欧美高清中文字幕综合网 | 国产目拍亚洲精品二区 | 亚洲欧美日韩国产精品一区第一页 | 羞羞视频下载 | 欧美视频在线观看一区二区 | 豆精品一区| 免费精品一区 | 花蝴蝶免 | 亚洲狠狠ady亚洲精品大秀 | 又刺激又爽又黄的视频在线观看 | 日本伊人色综合网 | 男女肉车 | 国产欧美一区二区精品性色 | 国产欧美日韩va另类在线播放 | 国产91青青成人a在线 | 欧美日韩精品一区二区三区高清 | 香蕉国产亚洲精品va在线观 | 91九色成人 | 精品动漫一区二区 | 热门海量电影资源在线观看 | 国产亚洲男人的天堂在线观看 | 欧美精品xxxxbbbb | 免费在线人 | 97色伦午夜国 | 成人欧美一区二区三区黑人 | 免费人成在线蜜桃视频 | 日韩免费无 | 国产精品人妇一区二区三区 | 午夜男女爽爽羞羞影院在线观看 | 在线永久观看视频网站免费 | 免费在线视频观看 | 国产精品欧美亚洲韩国日本不卡 | 在线永久观看国产精品电影 | 天天综合网~永久入口 | 国产一区二区三区 | 亚洲一区在线播放蜜臀 | 看全色黄大色黄大片女爽一黄 | 91成人精品一区二区三区四区 | 免费岛国小视 | 在线综合亚洲欧美日韩手机版 | 国产99视频精品草莓 | 动漫无遮| 国产高清在线观看视频 | 窝窝午夜看片 | 三年片最新电影免费观看 | 亚洲国内自拍愉拍中文字幕 | 极品尤物一区二区三区 | 国产日韩精品欧美一区喷 | 老妇喷水一区二 | 羞羞视频免费网 | 欧美日韩日本中国高清视频在线 | 国产精品一品二区三区的使用体验 | 两个人www在线观看免费视频 | 一区二区三区四区日韩 | 日本一级淫片a免费播放口 911精品中文在线播放永久 | 亚洲欧洲日本精品永久在线观看 | 亚洲欧美国产国产综合一区 | 国产福利在线永久 | 日韩丰满少 | 日韩中文高清在线 | 国产自拍论坛第一页 | 免费人成再在线观看网站 | 黑人巨大精品欧美一区二区 | 国产午夜免费一区二区三区 | 国产宅男z资 | 天天综合网天天综合 | 一级日韩免费大片 | 专区网站 | 欧美日韩一区二区三区视频网站 | 国产在线精品一区在线观看; | 视频在线观看国 | 日韩高清专区 | 亚洲国产精品日韩v专区 | 国产精品美脚玉足脚交欧美 | 91精品国自产在线观看 | 精品欧美一区二区三区在线观看 | 亚洲最大激情中文字幕 | 成年人免费国产视频 | 精品免费国产一区二区三区四区五 | 国产精成人品日日拍夜夜免费 | 成人一区专区在 | 日韩高清在线播放 | 一区二区三区四区在线播放视频 | 把你的香肠放入我的扇贝里 | 99夜夜夜精品一区二区 | 性欧美暴 | 芙宁娜裸身被羞羞漫画 | 亚洲特黄特色免费手机在线视 | 男人操女人网站 | 国产精品亚洲玖玖玖在线观看 | 国产亚洲精品成人 | 欧美激情中文字幕一区二区 | 欧美精品亚洲精品日韩 | 激情中文一区二区三区四区 | 最近播放中文版在线观看免费 | 午夜福利一区二区三区在 | 91看片网站免费看 | 国产在线一区二区播放精品 | 日韩视频中文字幕视频一 | 日韩伦理福利免费 | 亚洲v欧美v日韩v国产v | 国产精品免费精品自在线观看 | 在线看免费看国产精品视频 | 国产精品福利在线播放 | 欧美视频在线不卡 | 忘忧草社区在线www动漫 | 91精品观看91久 | 视频二区日韩 | 羞羞影院午夜男女爽爽影 | 97久视| 欧美日韩一区日本成人一区二区 | 人人狠人人透人人爱 | 久热亚洲 | 欧美亚洲人成网站在线观看 | 精品一区二区成人 | 国产老熟女一区二区三区 | 国产欧美精品一区二区三区四区 | 欧美一区二区三区性 | 天堂成人| 美腿丝袜亚洲综合在线视频 | 欧美激情中文字幕综合一区 | 日韩精品专区在线影院重磅 | 99国产在线精品观看二区 | 水蜜桃视频网站在线观看网址 | 亚洲国产福利一区二区三区 | 乱伦精品亚洲影视 | 亚洲亚洲人成网站在线观看 | 扒开女人内裤猛 | 高清一区二区三区视 | 日韩成人午夜影院 | 精品国精品国产国产 | 永久免费不卡在线 | 日韩在线一区二区三区观看 | 色午夜日本高清视频www | 国产精品一区二区播放在线 | 91社区在线观 | 国产精品日韩一区 | 国产午夜免费福利红片 | 国产免费 | 一进一出又大又粗爽视频 | 成人三级| 九月丁香婷婷激情四射视频一区 | 国产精品h片在线播放 | 天天综合日韩7799 | 国产精品一区二区三 | 日本高清一区二区三区水蜜桃 | 中文字幕高清有码在线中字 | 欧美黑人疯狂性受 | 国产视频91完整版播放 | 99精产国品一二三产区区 | aaa午夜级特黄日本大片 | 国产精品边做奶水狂喷 | 国产一区二区三区日韩精品 | 国产欧美亚洲精品第一页 | 国产最新精品自产在线观看 | 日韩女同在线二区三区 | 国产精品不卡免费视频 | 亚洲色大成网站www永久网站 | 亚洲欧美日韩人兽免费 | 区二区在线观看 | 亚洲精品区m | 黄工厂精品视频在线观看 | 在线免费观看视频a | 亚洲精品一本四区91 | 乱码一线二线三线新区破解欧 | 欧美人与动牲猛交a欧美精品 | 亚洲日本一区二区三区在线 | 精品国产免费人成网站 | 国精产品一区一区三区mba下载 | 亚洲韩国日本欧美一区二区三区 | 亚洲а∨天堂在线网站 | 欧美性性性 | 欧美日韩国产高清精卡 | 亚洲欧美国产日韩精 | 欧美日韩一区二区综合在线 | 亚洲国内午夜a | 国产乱子伦农村叉叉叉 | 欧美精 | 国产免费人成在线看视频 | 午夜免费福利在 | 国产亚洲美女嘘嘘国产 | 射精专区一区二区朝鲜 | 99精品视频在线视频免费观看 | 国产亚洲高清一区二区 | 国产超级va在线播放 | 亚洲精品偷拍区 | 在线观看亚洲一区二区三区 | 日本高清无卡码 | 欧美精品视频在线免费观看 | 国产亚洲欧美手机在线观看 | 伊人影视 | 中文字幕在线永久免费精品 | 国产精品自在线拍国产手机版 | 91精品国产品香蕉在线 | 国产在线拍揄自揄免费一区 | 国产福利| 最新日本一道免费一区二区 | 成人69激情视频在线观看 | 不卡精品| 91自产拍在线观看精品 | 亚洲s色大| 欧美国产一区二区三区精品 | 91影视永久福利免费观 | 欧美动作大片在线观看 | 欧美人与性动交α欧美精品 | 最新理论片在线观看免费 | 国产精品青青青高清在线 | 亚洲欧美 | 欧亚乱色熟一区二区三四区 | 国产福利91精品一区二区 | 好看的电视 | 亚洲精品午夜不卡在线播放 | 被暴雨淋湿 | 日韩电影大片手机在线观看 | 午夜理论电影在线观看亚洲 | 一区二区三区国产亚洲网站 | 欧美日韩综合在线播放 | 日韩国产欧美精品综 | 欧美日韩国产一区三区 | 丝袜线观看 | 国产精品一区不卡在线观看 | 老牛影视文化传媒有限公司官方 | 丁香美女社区 | 日韩国产制服在线 | 免费国产在线精品一区 | 999国内精品永久免费视频 | 国产精品日本一区二区在线播 | 99视频精品免费在线观看 | 日本女黄在线观看 | 伊人www22| 国产在线高 | 日本一区二区三区精品 | 午夜老司机永久免费看片 | 国产黑色丝袜在线看片不卡顿 | 日本韩国欧美 | 亚洲高清无在码在 | 国产亚洲精品无 | 最新91天堂国产电影在线观看 | 国产亚洲精品a在线看 | 日本肥老妇色xxxxx日本老妇 | 国产精 | 轻点灬大ji巴大粗长了视频 | 激情影院内 | 好看的电视剧免费 | 日本欧美午夜三 | 国产精品玩偶在线 | 国产精品天天看特色大片不卡 | 亚洲国产一区二区午夜福利 | 国产美女视频福利 | 日本一本之道之视频在线不卡 | 日本一区二区三区精品视频 | 在线观看免费人成视频网 | 国产亚洲欧美日韩在线三区 | 91免费公开视频 | 中文字幕不卡欧美日韩在线 | 亚洲人精品午夜射精日韩 | 国产免费一区二区三区在线 | 国产一区二区三区四区在 | 国产精品日韩在线 | 国产+日韩+另类+视频一区爱 | 青青操视频免费观看 | 免费永久在线观看污污的网站 | 天堂网在线最新版www资源网 | 国产又黄又大又粗的视频 | 免费观看电影真不卡 | 囯产精品一区二区三区线 | 三年在线观看免费完整版中文 | 亚洲欧洲精品一二三区 | 亚洲视频一区二区在线观看 | 亚洲欧洲综 | 一区二区日韩视频九一蜜桃 | 国产极品视 | 最新国语自产精品视频在 | 欧美色吊丝人人添人人摸 | 欧美日韩精品一区二区另类 | 国产亚洲欧美另类一区 | 91精品视频在线观看免费 | 欧美精品亚洲日韩aⅴ | 亚洲视频一区二区在线观看 | 欧美日韩精品一区二区视频 | 欧美一区二区三区免费 | 亚洲精品国产精品乱码不卡√ | 日本日本乱码伦视频在线观 | 免费a级毛 | 精品精品国产欧美在线观看 | 亚洲人成日韩中文字幕不卡 | 午夜伦伦 | 免费人成激情视频在线观看冫 | 一区二区三区在线观看视频 | 又粗又硬又长又黄又爽 | 国产+日韩精品 | 日本伊人精品一区二区三区 | 中日韩精品一区二区三区成人 | 一二三四在线观看免费视频 | 日本强伦姧人 | 99热久这里都| 国产日韩精品欧美一区喷水 | 91国内揄拍国内精品情侣对白 | 国产美女视频国产视视频 | 福利第二页精品推荐在线观看 | 亚洲日韩在线中文字幕第一页 | 亚洲国产砖一线二线 | 一区国严二区 | 美女自卫慰出水免费视频 | 国产欧美精品一区二区三区四 | 动漫精品无 | 最近播放中文版在线观看免费 | 杨幂在日本一区二区视频 | 成人精品视频99在线观看免费 | 一区二区三区视频 | 国产美女一区三区在线观看 | 日本高清中文字幕在线 | 99这里只有精品 | 欧美成视频无需播放器 | 污污污免费 | 国产精品午夜高清在线观看 | 字幕一区在线观看视频 | 噼里啪啦的视频免费观看 | 国产不卡高清在线观看视频 | 亚洲综合一区二区三区 | 激情小说网 | 国产福利精品视频 | 亚洲日产 | 色综合伊人色综合网站 | 情趣五月天| 国产主播在线观看网 | 欧美黑人疯狂性受 | 网站资源多午夜激情影院 | 精品国产aⅴ一区二区三区四川人 | 天天躁日日躁狼狼 | 一级女性全黄生活片免费 | 国产蜜片免费在线观看播放 | 免费中文 | 泰国一级特黄在线观看大片 | 水蜜桃国| 国产一级a毛一级a在线观看 | 亚洲精品美女偷拍一区二 | 亚洲欧美日韩中文高清一 | 欧美一级一区二区电影 | 国产欧美日韩乱伦 | 国产字幕制服中文在线 | 欧美xxxxx高 精品一区二区三区免费观看 | 宅男66lu国产在线观看 | 麻酥酥哟视频在线播放 | 偷窥国产| 车上乱肉合 | 99视频在线精品自拍 | 亚洲无卡免费 | 在线观看国产精选免费 | 国产美女视频免费 | 国产日韩在线观看一区福利 | 欧美日韩免费精品一区二区在线 | 国产欧美不卡 | 好吊色欧美一区二区三区视频 | 精品国产乱 | 中文字幕二区在线 | 国产厨房一区二区三区 | 99久热re在线精品视频 | 成人免费播放 | 在线成人国产公 | 国产高清在线精品二区一 | 真实国产乱子伦 | 91秒拍国产福利一区 | 精品午夜国产福 | 五月天婷婷丁香中文字幕 | 国产99视频精品免视看9 | 国产精美视频在线观看 | 亚洲高清中文字幕综合网 | 婷婷综合尤物精品国产 | 精品国产福利第一区二区三区 | 欧洲精品卡1区2卡三卡四卡 | 欧美aaaaa级毛卡片在线 | 日本一区不卡在线观看 | 星空传媒国产剧 | 国产精品55夜色66夜色 | 国产精品福利自产拍在线观看 | 国产女精品 | 中日欧洲精品视频在线 | 日韩欧美在线观看一区 | 国产一区二区三区免费看视频 | 最新院线大片抢先看 | 亚洲国产日韩无在线播放 | 亚洲ssswww视频 | 国产精品青草综合久 | 免费99精品国产 | 国产乱子夫妻xx黑人xyx真爽 | 精品国产品 | 欧美在线伊人 | 亚洲欧洲| 午夜电影网在 | 成人国产经典 | 欧美一区二区三区激情爽 | 夜夜未满十八勿进的爽爽影院 | 亚洲欧美精品日韩片 | 亚洲国产欧美在线人成aaaa | 老司机精品 | 一本大道 | 成人夜间视频 | 91精品在线看| 亚洲一区二区在线欧洲 | 国产在线观看 | 国产美女一区二区丝袜美腿 | 怡红院免费的全部视频 | 日韩一区二区三区四区区区 | 设看到很多欧美日韩一区二区综 | 一区二区三区美女图片 | 干干日日日 | 重口sm一区二区三 | 青青国产在观免费影视 | 日本国产欧美精品在 | 草莓视频污官网 | 亚洲精品高清在线观看 | 国产拍揄自揄精品短视频 | 91精品国产自产在线观永久 | 精品亚洲欧美无人区乱码 | 在线观看国产一区二区三区 | 国产在线91精品入口 | 精品国产一区二区三区2025 | 日韩欧美国产免费看清风阁 | 国产特黄一级aa在线 | 亚洲国产成a人v在线观看 | 日本国产欧美日韩三区四区 | 国产免费一区二区三区免费视频 | 粗大的内捧猛烈进出在线视频 | 国产66自 | 国产乱弄视频在线观看 | 日韩大片在线永久免费观看网站 | 2025国产| 高清影院 | 午夜未满十八勿入网站2 | 亚洲欧美中文日韩v在线观看 | 亚洲精品在线免费 | 日本一区二区三区四区不卡 | 日韩乱码精品中文字幕不卡 | 中文字字幕乱码高清二本道资源站 | 国产天堂在线丝袜一区 | 国产aⅴ视频免费观看国语 91大神在线视频免费观看 | 国产一区二区三区美女图片 | 日本欧美高清乱码一区二区 | 国产在在 | 村长巨大开嫩苞 | 337p日本人体 | 国产精选在线观 | 一二三四区 | 人人看人人拍国产精品 | 欧美日韩国产伦理 | 日本国产一区在线观看 | 日韩在线看片 | 国精品无 | 色偷偷国色天香在线观看免费视频 | 亚洲黄免费看网站国产福利一区二 | 精品入口| 国产日韩欧美综合一区 | 欧美综合自拍亚洲综合图 | 成人免费一区二区三区视 | 中文字幕不卡高 | 乱码一码二码三码四码狼人 | 国产福利小电影视福利在线 | 国产伦精品一区二区三区免 | 精品国内自产拍在线视频 | 亚洲国产v片在线 | 亚洲色偷偷综合亚洲v | 成人欧美一区二区三区的电影 | 中文字幕精品乱码亚洲一区 | 西西人体大胆扒开下部337卩 | 成人欧美一区二区三区的电影 | 拍91精品 | 激情中文一区二区三区四区 | 五月天亚洲欧美激 | 日久精品不卡一区 | 免费视频在线观看cc | 日韩美女网站在线看 | 91国产在线 | 99热国产在线播放只有精品 | 三级视频网站在线观看 | 中文字幕精品亚洲一区 | 日韩欧美性爱精品一区二区 | 国产乱子伦精 | 国产盗摄亚洲中国 | 亚洲美女高 | 中文字幕日本精品一区二区三区 | 另类专区亚洲 | 国产熟女绯色一区二区三区免费 | 精品三级视频在线观看 | 不要播放器看在线播放a国产 | 国产精品分类在线播放 | 97色秘乱码一区二区三 | 亚洲日韩精 | 国产午夜福利一区二区三区在 | 免费福利tv | 国产suv精二区69 | 97碰碰碰视频在线观看 | 国产精品一区二区播放在线 | 精品视频在线观看 | 综合国产日本 | 午夜一级韩国欧美日本国产 | 中文字幕第一页在线观 | 精品亚洲欧美视频在线观看 | 国产在线一区二区三区不卡在线 | a级高清免费 | 亚洲最大国产成 | 日韩一级一欧美一级国产 | 热映电影免费在线观 | 久热最新精品视频在线观看 | 日韩视频怡春院 | 99精品热爱在线观看视频 | 中文字幕久 |