码迷,mamicode.com
首页 > 编程语言 > 详细

关于C++中用两个迭代器方式初始化string的知识

时间:2015-07-05 12:23:42      阅读:331      评论:0      收藏:0      [点我收藏+]

标签:

string(iter1, iter2);

第一点:两个迭代器必须指向同一个容器。
第二点:iter2必须>=iter1。
第三点:如果iter1等于iter2,那么结果为空[]

另外一个比较特殊的关于反向迭代器的非常有用知识点,用如下程序来说明:

int main() {
    string str1 = "abc";
    cout << "str1.rend() - str1.rbegin() is " << str1.rend() - str1.rbegin() << endl;
    cout << "str1.rbegin() - str1.rend() is " << str1.rbegin() - str1.rend() << endl;
    cout << "*str1.rbegin() is " << *str1.rbegin() << endl;
    cout << string(str1.rbegin(), str1.rend()) << endl;
    //cout << *str1.rend() << endl; error
    //cout << string(str1.rend(), str1.rbegin()) << endl; error
    getchar();
}

output is

str1.rend() - str1.rbegin() is 3
str1.rbegin() - str1.rend() is -3
*str1.rbegin() is c
cba

版权声明:本文为博主原创文章,未经博主允许不得转载。

关于C++中用两个迭代器方式初始化string的知识

标签:

原文地址:http://blog.csdn.net/guanzhongshan/article/details/46762321

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!