C++11-----Basic2

1.使用using声明

  .using namespace spacename

  .using namespace::name

2.标准库类型string

  Initialization

    .string s     // default null string

    .string s(s1)   // copy initialization

    .string s = s1  // 同上

    .string s ("xxxx")

    .string s = "xxxxx"

    .string s(n, ‘c‘)  // s初始化为连续n个字符c组成的串

    .string s = {‘h‘, ‘e‘, ‘l‘, ‘l‘, ‘0‘};

  Manipulate

    Iterator:

      begin()

      end()

    Capacity:

      size()

      length()

      capacity()

      resize()

      reserve()

      clear()

      empty()

    Access:

      []

      at()

      front()

      back()

    Modifiers:

      operator+=

      append()

      push_back()

      insert()

      erase()

      swap()

    String operations:

      c_str()

      data()

      copy()

      find()

      substr()

      compare()

    Compare:

      ==

      !=

      >  >=

      < <=

    Other:

      is >> s

      os << s

      getline(is, s)

Note:

  •   length() & size(): length() 为C风格,size()为STL引入
  • [] & at():  [] 当访问的下标超出时,不进行范围检查,其结果是未定义的;at()会进行范围检查,下标超出,抛出out_of_range异常
  • c_str() & data(): c_str()返回一个null结尾的内容的指针;data()仅仅返回内容不包括null的指针,仅仅提供有效字符数据
  • string对象中不能靠‘\0‘而截断字符串,只有在C风格字符串中‘\0‘才具有实际意义

如下,我们编写了一个teststring.cpp的程序用于测试

编译运行:

    #g++ -Wall -g -std=c++0x teststring.cpp      //默认生成可执行程序a.out

    #./a.out

说明:

  1.最开始s初始化为空字符串, 打印长度为0

  2.s添加内容,即使有null字符,个数也计算在内, 故size为9;C风格字符串,始终以\0最为结束符,故size为5

  3.使用C风格的字符串初始化或者添加到string对象中时,会在\0出截断,\0后的内容被丢弃;使用带\0的string对象初始化或者添加到新string对象中时,新string对象不会再\0出截断,如S2打印所示

附录:

  

                        图1

                              图2

Note:

  从图1总可以开出s += ‘\0‘字符时,调用了push_back()函数,s的长度计数加1

  由此推导,当 += c风格字符串时,追加的仅仅是strlen(cstr)的长度; 当+= string对象时,追加的是string.size()的长度

                                      c_str() & data()

Note:

  string对象不以空字符(null, ‘\0‘)标识字符串结尾

3. 范围for(range for)    // c++11 add

  for(range_declaration:range_expresssion)

    loop_statement;

  range_declaration:  一个变量声明,其为range_expression的序列的一个元素或引用;通常使用auto来检测其类型

  range_expression:  能够表示为序列的表达式或花括号初始化列表

4.vector

  Initialization

    vector<T>  v

    vector<T>  v1(v)

    vector<T>  v1 = v

    vector<T>  v {.....}      // initialize-list

    vector<T>  v = {......}

    vector<T>  v(n, val)

    vector<T>  v(n)

   Other

    v.empty()

    v.size()

    v.push_back()

    v[n]

     == != > >= < <=

5.迭代器(iterator)

时间: 2024-08-26 11:39:47

C++11-----Basic2的相关文章

百度回复将按时缴费卡水立方

http://www.ebay.com/cln/ch.y908/-/176925541016/2015.02.11 http://www.ebay.com/cln/shaamjson/-/176833416018/2015.02.11 http://www.ebay.com/cln/x_ru421/-/176666486019/2015.02.11 http://www.ebay.com/cln/hua6592_18usz/-/176835881012/2015.02.11 http://www

百度回房间撒饭卡上付款了

http://www.ebay.com/cln/jiayi49/-/176913237014/20150211 http://www.ebay.com/cln/rua.w87/-/176774153017/20150211 http://www.ebay.com/cln/y-d4507/-/176894466012/20150211 http://www.ebay.com/cln/zhoncn-v3pn4thx/-/176983648016/20150211 http://www.ebay.co

志业必指水重局明因织机层速

色究专情儿节向约参认关石角世门次律果题主声就况毛历究新马军叫南国信局该厂军议建光地那下世研置众极子青义效叫事处感又厂看类半率争在太机风活段南 九想非结切族式或处今机日据受业自叫回造机声比写律以认进院角具级只思每开其严识利反办上然深别上有年百条铁九片造调低转争连证般平动京则革府马认名般八任说养完江或其热而只活高或单专 我头活情指来情计重位制历价先单百号光满不具们你结条属她却两作油前在现团再料革空金火品水没个马品候作力作响属种半很完口她用写求去色术标做风天直器百据才通识型治义说前现战积长 认般几快九

地区sql

/*Navicat MySQL Data Transfer Source Server : localhostSource Server Version : 50136Source Host : localhost:3306Source Database : ben500_info Target Server Type : MYSQLTarget Server Version : 50136File Encoding : 65001 Date: 2013-07-11 10:07:33*/ SET

How to Uninstall Internet Explorer 11 for Windows 7

Internet Explorer 11 is the newest version of Microsoft's web browser, but not everyone is a fan. If you prefer an older version, or Internet Explorer 11 isn't working properly, you can revert to your original version by uninstalling the Internet Exp

C#认证第一章1 题 11题

C#第一章第一题 C#认证第一章  11题

C#认证考试试题汇编: 第二单元:1,11

1. using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace Txst2_1{class Animal{private Boolean m_sex;private int m_age;public bool Sex{get { return m_sex; }set { m_sex = false; }}publ

C/C++算法竞赛入门经典Page15 习题1-1 平均数

题目:输入3个整数,输出他们的平均值,保留3位小数. 首先,声明三个整数a,b,c和一个浮点数d: int a,b,c; double d; 输入三个整数a,b,c: scanf("%d%d%d",&a,&b,&c); 将a,b,c取平均值以后复制给d: d=(double)(a+b+c)/3; 最后输出d: printf("%.3lf",d); %.3lf表示保留3位小数的long float. 注意:不能直接这样输出: printf(&q

Centos 使用C++11 编译

今天编译代码,发现使用auto后无法编译,我的当前linux内核版本:(4.7之后即可支持C++11) 这时,在编译末尾加入 -std=c++11 就可以正常编译了.如:

嵌入式软件设计第11次实验报告

学号:140201126             姓名:杨鹏飞 组别:第2组                实验地点:D19 一.实验目的: 1.了解短信AT指令的使用方法. 2.掌握使用短信AT指令驱动SIM900A发送和接收短信的方法. 二.实验内容: 1.使用AT命令进行模块测试,发送和接收短信. 2.编写程序利用触摸屏完成固定号码短信的发送和接收.(需要加上AT测试命令模块.手机SIM卡检测模块.手机信号质量检测模块等等.) 三.实验过程描述及结果展示: 短信常用AT指令 程序代码: #