zoukankan      html  css  js  c++  java
  • string和vector

    一、String对象
    1、string s;
         s.size();

    //返回的是s中字符的个数,也是s的长度;

    //string对象最后没有加空字符

    //size()返回的是string::size_type类型,也就是unsigned类型,而不是int类型
    2、两个string对象的相加

    string标准库中重载了"+"运算符;

       string s1("hollo");

       string s2("world");

       string s3=s1+s2;  //ok

    但要注意的是,+操作符的左右操作数必须至少有一个是string类型:

    string s4="hello"+"world";  //error:no string operand

    string s5=s1+", "+"world";  //ok

    string s6="hello"+", "+s2;  //error

    二、标准库vector类型
    1、vector对象的定义和初始化

    几种初始化vector对象的方式

    vector<T> v1;

    vector保存类型为T的对象。默认构造函数,v1为空

    vector<T> v2(v1);

    v2为v1的一个副本

    vector<T> v3(n,i);

    V3包含n个值为i的元素

    vector<T> v4(n);

    V4含有值初始化的元素的n个副本

    vector<int> ivec;

    vector<sales_item> Sales_vec;

    虽然可以对给定元素的个数的vector对象预先分配内存,但更有效的方法是先初始化一个空的vector对象,然后再动态增加元素。(vector和数组很像,但数组不能动态增加元素,而且值得注意的是vector下标操作不添加元素,在下面的3中讨论)

    2、vector对象的size

    vector对象的成员函数size返回相应vector类定义的size_tyoe的值,但值得注意的是使用size_type类型时,必须指出该类型是在哪里定义的。vector类型总是包括vector的元素类型:

    vector<int>::size_type    //ok

    vector::sizet_ype        //error

    3、下标操作不添加元素

    #include<iostream>

    #include<vector>

    using std::cin;

    using std::cout;

    using std::endl;

    using std::vector;

    int main(){
                  vector<int> ivec;   //empty vector
                  //for(vector<int>::size_type i=0;i!=10;++i)
                  //     ivec[i]=i;

    /*试图在ivec中插入10个元素,元素值依次为0-9的整数。但是,这里的ivec是空的vector对象,而且下标只能获取已存在的元素。*/

           for(vector<int>::size_type i=0;i!=10;++i)
                  ivec.push_back(i); //push_back(t) 在末尾增加一个值为t的元素
                  for(vector<int>::size_type i=0;i!=ivec.size();++i)
                         cout<<ivec[i]<<" ";
                  cout<<endl;

                  return 0;
    }

    对于下标操作符[]的使用有一点非常重要,就是仅能提取确实已存在的元素。试图对不存在的元素进行下标操作是程序设计过程中经常发的错误,有可能会导致程序崩溃。

  • 相关阅读:
    Linux系统下搭建Gitlab服务器
    Sqlserver数据库表转换成C#实体类
    C# 获取今天,昨天,上周,下周,上月,下月等等一些日期格式【转】
    Funthing
    网页生成海报
    NET 5.0 Swagger API 自动生成MarkDown文档
    说说C# 8.0 新增功能Index和Range的^0是什么?
    tblive-studio vs2019 编译过程记录
    确定已安装的 .NET Framework 版本
    修改CMD默认编码
  • 原文地址:https://www.cnblogs.com/mzct123/p/5535723.html
Copyright © 2011-2022 走看看