首页后端开发ASP.NET第三章C++:字符串string、向量vector和数组

第三章C++:字符串string、向量vector和数组

时间2024-01-31 01:19:03发布访客分类ASP.NET浏览963
导读:收集整理的这篇文章主要介绍了第三章C++:字符串string、向量vector和数组,觉得挺不错的,现在分享给大家,也给大家做个参考。第二章介绍内置类型,本章介绍抽象数据类型库。 - 其中string和vector是两种最重要的标准库类型,...
收集整理的这篇文章主要介绍了第三章C++:字符串string、向量vector和数组,觉得挺不错的,现在分享给大家,也给大家做个参考。

第二章介绍内置类型,本章介绍抽象数据类型库

- 其中stringvector是两种最重要的标准库类型,前者支持可变长字符串,后者表示可变长的集合
- 还有一种标准库类型是迭代器,它是string和vector的配套类型,常被用于访问string中的字符和vector中的元素。

第三章 字符串、向量和数组

  • 头文件不应包含using声明。

标准库类型string

#include string>
    using std::string
  • 初始化string

    • 直接初始化(direct inITialization)

    • 拷贝初始化(copy initialization):使用等号

      string s1;
          string s2(s1);
          string s2 = s2;
          string s3("hiya");
          string s3 = "hiya";
          string s4(10, 'c');
           //s4的内容是cccccccccc
  • string对象上的操作

    1. cout  s2. cin >
        >
         s         //将string对象读入s,遇到空白停止3. getline(is, s)   //从输入流is中读取一行赋给s(换行符被读取了,但被丢弃而没有赋给s),返回is4. s.empty()        //s为空返回true,否则返回false5. s.size()6. s[n]             //返回s中第n个字符的引用,位置n从0计起          7. s1 + s2          //返回s1和s2连接后的结果8. s1 = s29. s1 == s210. s1 != s211. , =, >
        , >
        =
    • 逻辑非运算符(!)

  • string::size_tyPE类型:s.size()的返回值类型,是string类的配套类型。它是一个无符号类型的值,能够存放下任何string对象的大小。

  • 处理string对象中的字符

    • cctype头文件:对单个字符的判断或处理的函数

      isupper(c)      //c是大写字母时为真islower(c)tolower(c)      //如果c是大写字母,则输出对于的小写字母;否则原样输出toupper(c)isalpha(c)      //c是字母时为真isdigit(c)      //c是数字时为真isalnum(c)      //c是字母或数字时为真ispunct(c)      //c是标点符号时为真isspace(c)      //c是空白时为真(即c是空格、横向制表符、纵向制表符、回车符、换行符、进纸符的一种)iscntrl(c)      //c是控制字符时为真isgraph(c)      //c不是空格但可打印时为真isPRint(c)      //c是可打印字符时为真(即c是空格或具有可视形式)isxdigit(c)     //十六进制数
    • 使用C++版本的C标准库头文件,形如name.h,C++++中这些文件命名为cname,内容一样,且头文件cname中定义的名字从属于命名空间std。

  • 范围for(range for)语句

for (declaration : exPression)    statement例如:string str("some string");
    //每行输出str中的一个字符for(auto c : str)    cout  c endl;
    

标准库类型vector

vector是一个类模板(class template)。vector表示对象的集合,其中所有对象的类型都相同。集合中的每个对象都有一个与之对应的索引,索引用于访问对象。vector也常被称为容器(container).

  • 定义和初始化vector对象

vectorT>
     v1vectorT>
     v2(v1)vectorT>
     v2 = v1vectorT>
     v3(n, val)vectorT>
     v4(n)vectorT>
 v5{
a,b,c...}
    vectorT>
 v5 = {
a,b,c...}
    
  • 列表初始化vector对象

vectorstring>
 articles = {
"a", "an", "the"}
    ;
    
  • 向vector对象中添加元素

    运行时才知道vector对象中确切的个数:

    string word;
        vectorstring>
         text;
        while (cin >
        >
     word) {
            text.push_back(word);
    }
        
    • vector对象能高效增长:vector能在运行时高效快速地添加元素。

    • 如果循环体内包含有向vector对象添加元素的语句,则不能使用++范围for++循环。

    • push_back:把一个值当成vector对象的尾元素“压到(push)”vector对象的“尾端(back)”。

      vectorint>
           v2;
          for(int i=0;
           i != 100;
           ++1)    v2.push_back(i);
          
  • 其他vector操作

v.empty()v.size()v.push_back(t)v[n]        //返回v中第n个位置上元素的引用v1 = v2v1 = {
a,b,c...}
    v1 == v2v1 != v2, =, >
    , >
    =

迭代器iterator

一种通用机制:实现使用下标运算符访问string对象的字符或vector对象的元素。

类似指针类型,提供了对对象的间接访问。

  • begin和end成员

    //由编译器决定b、e的类型//b表示v的第一个元素,e表示v尾元素的下一个元素auto b = v.begin(), e = v.end();
            //b、e类型相同
    • end成员返回的迭代器常被称作尾后迭代器(off-the-end iterator),或者简称尾迭代器。

    • 如果容器为空,则begin和end返回的都是尾后迭代器。

  • 标准容器迭代器运算符

*iter           返回迭代器iter所指元素的引用iter->
    men       解引用iter并获取钙元素的名为mem的成员,等价于(*iter).mem++iter--iteriter1 == iter2iter1 != iter2
//将字符串首字母改成大写string s("some string");
if (s.begin() != s.end()) {
        auto it = s.begin();
        *it = toupper(*it);
}
    //将迭代器从一个元素移动到另一个元素,把字符串中第一个单词改为大写//注意,使用的是!=,而不是for(auto it = s.begin();
     it != s.end() &
    &
     !isspace(*it);
     ++it)    *it = toupper(*it);
    
  • #### 迭代器类型

拥有迭代器的标准库使用iterator和const_iterator来表示迭代器的类型:

vectorint>
    ::iterator it;
               //it能读写vectorint>
    中的元素string::iterator it2;
                   //it2能读写string对象中的字符vectorint>
    ::const_iterator it3;
        //it3只能读元素,不能写元素string::const_iterator it4;
             //it4只能读字符,不能写字符

参考:C++Primer第五版

第二章介绍内置类型,本章介绍抽象数据类型库
- 其中stringvector是两种最重要的标准库类型,前者支持可变长字符串,后者表示可变长的集合
- 还有一种标准库类型是迭代器,它是string和vector的配套类型,常被用于访问string中的字符和vector中的元素。

相关文章:

第一章C++:函数返回值、GNU编译器命令

第二章C++:变量和基本类型

以上就是第三章C++:字符串string、向量vector和数组的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: 第四章C++:表达式概念-运算符的...下一篇:第二章C++:变量和基本类型猜你在找的ASP.NET相关文章 C# 一些面试试题的实例教程2022-05-16.NET 6开发TodoList应用之请求日志组件HttpLogging介绍2022-04-16.NET 6中间件Http Logging使用介绍2022-04-16gojs一些实用的高级用法2022-04-16.NET6开发TodoList应用之实现查询排序2022-04-16.NET6开发TodoList应用之实现数据塑形2022-04-16.NET微服务架构CI/CD自动打包镜像2022-04-16Asp.Net Core 使用Monaco Editor 实现代码编辑器功能2022-04-16.NET微服务架构CI/CD自动构建Jenkins+Gitee2022-04-16.Net Core微服务网关Ocelot集成Consul2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: 第三章C++:字符串string、向量vector和数组
本文地址: https://pptw.com/jishu/593291.html
jquery怎样实现验证数字 第二章C++:变量和基本类型

游客 回复需填写必要信息