Fork me on GitHub

【数据结构与算法】C++String常用备忘

int main(){
    string s1 = "123";
    string s2 = s1;//深拷贝,基本类型也是深拷贝,对象类型浅拷贝
    cout << &s1 << " " << &s2  <<endl;//00DFFA30 00DFFA0C 

    s1.size();//获取长度3

    string s3 = "abc";
    string s4 = "abc";
    cout << (s3 == s4) << endl;//true,不去要equal函数

    s4[0] = 'd';//下标访问取出char,可以修改来改变原string
    cout << s4 << endl;//dbc
    cout << (s4[2]) << endl;//c
    cout << (s4[3]) << endl;//空的
    //cout << (s4[4]) << endl;//程序终止

    int a[] = { 1,2,3 };
    cout << (a[2]) << endl;//3
    cout << (a[3]) << endl;//随机
    cout << (a[4]) << endl;//随机。。。以后也是,int数组可以越界访问,结果随机,string不行。

    string s5 = "a";
    string s6 = "b";
    cout << (s5 > s6) << endl;//两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’\0’为止。


    //迭代器
    string s7 = "abcdefg";
    for (string::iterator it = s7.begin(); it < s7.end(); it++) {
        cout << *it << endl;//遍历输出    iter->mem  等价于 (*iter).mem   const_interator只能读不能写     reverse_iterator搭配 rbegin~rend 反向遍历  it--往前移动
    }

}

 

posted @ 2019-03-13 11:26  UlyssesCat  阅读(211)  评论(0编辑  收藏  举报