簡體   English   中英

使用String反向迭代器和迭代器作為相同類型的對象(C ++)

[英]Use String reverse iterator and iterator as same type of object (C++)

我正在嘗試為迭代器和反向迭代器使用相同的變量。 但是,我找不到這樣做的通用基類。 我想做這樣的事情:

string a;
....
string::iterator i;
if (....)
    i = a.begin();
else
    i = a.rbegin();  //Error
....

有這樣做的好方法嗎?

std::string::iteratorstd::string::reverse_iterator沒有通用類型。

如果要在它們之間進行選擇,則每種類型都需要具有不同的功能。 最簡單的方法是使用模板

例如

template <typename Iterator>
void do_stuff(Iterator begin, Iterator end)
{
    ...
}

int main()
{
    string a;
    if (...)
        do_stuff(a.begin(), a.end());
    else
        do_stuff(a.rbegin(), a.rend());
    return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM