美文网首页
[基础]C++:string和vector(1)

[基础]C++:string和vector(1)

作者: 离群土拨鼠 | 来源:发表于2019-03-18 23:30 被阅读0次

    内置数组是一种更基础的类型,string和vector都是对它的某种抽象。

    • string表示可变长的字符序列。
    • vector表示存放给定类型的可变长度。

    命名空间的using声明

    形式如:using namespace::name;

    定义和初始化string对象

    初始化操作
    #include<iostream>
    using std::string;
    int main()
    {
        string s1;//默认初始化
        string s2(s1);//s2是s1的副本(直接初始化)
        string s3("value");//将value字面值除了空字符外都给了s3
        string s3 = "value";//和上面的一样(用了等于号,是拷贝初始化)
        string s4(10, 'c');//内容为10个C(直接初始化)
        system("pause");//
        return 0;
    }
    
    

    string对象上的操作

    string的操作
    os<<s 将s写入输出流os种,返回os
    is>>s 读取字符串赋给s,以空白分割
    getline(is,s) 从is中读取一行赋给s,返回is
    s.empty() s为空时返回true,否则返回false
    s.size() 返回s中字符的个数
    s[n] 返回s中第n个字符的引用,n从0开始
    s1+s2 返回s1和s2连接后的结果
    s1==s2 是否相等
    s1!=s2 等性判断对字母大小写敏感
    <, <=, >, >= 利用字符在字典中的顺序进行比较,且对字母的大小写敏感

    读写string

    • 会自动忽略开头空白(空格,换行,制表符)
    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
        string s;
        cin >> s;
        cout << s << endl;
        system("pause");
        return 0;
    }
    

    写入未知个数操作

    • cin会将空格断开
    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
        string s;
        while (cin >> s)
            cout << s << endl;
    
        system("pause");
        return 0;
    }
    

    使用getline读取一整行

    • 在读入的字符串中保留空格,直到遇到换行符为止
    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
        string s;
        while (getline(cin,s)) //可以读入空格
            cout << s << endl;
        system("pause");
        return 0;
    }
    
    

    string的比较

    • (1)比较时长度不同,但是短的和长的对应位置相同,短的小于长的。
    • (2)比较时对应位置不一样,对应位置的字符比较大小。
    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
        string s1 = "hello";
        string s2 = "hello ss";
        string s3 = "hi";
        system("pause");
        return 0;
    }
    
    
    • s3 > s2 > s1

    string的相加

    • 字面值不能相加
    • 必须有string对象的参与
    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
        string s1 = "hello"+","; //错误,没有包含string
        string s2 = "hello ss"+s1; //正确
        string s3 = "hi"+s2+"<";//正确
        string s4 = "hello" + ","+s1;//前两个没有包含string
        system("pause");
        return 0;
    }
    

    参考:C++primer 第五版

    相关文章

      网友评论

          本文标题:[基础]C++:string和vector(1)

          本文链接:https://www.haomeiwen.com/subject/lnvbmqtx.html