日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

C++Primer学习笔记(二)

發布時間:2023/11/27 生活经验 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++Primer学习笔记(二) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

17.string對象中字符的處理:
cctype頭文件中定義:
isalnum(c)  如果c是字母或數字,則為true
isalpha(c)  如果c是字符,則為true
iscntrl(c)  如果c是控制字符,則為true
isdigit(c)  如果c是數字,則為true
isgraph(c)  如果c不是空格,但可打印,則為true
isprint(c)?  如果c是可打印字符,則為true
ispunct(c)?  如果c是標點符號,則為true
isspace(c)?  如果c是空白字符,則為true
isupper(c)?  如果c是大寫字母,則為true
islower(c)?  如果c是小寫字母,則為true
isxdigit(c)?  如果c是十六進制數,則為true
tolower(c)?  如果c是大寫字母,則返回其小寫形式,否則直接返回c
toupper(c)?  如果c是小寫字母,則返回其大寫形式,否則直接返回c

空白字符指:空格,制表符,垂直制表符,回車,換行符,進紙符

(示例1:輸出給定的string對象中標點符號的個數)

 1 #include <iostream>
 2 #include <string>
 3 #include <cctype>
 4 using namespace std;
 5 
 6 void main()
 7 {
 8  string s("!Hello LatourEiffel!!!");
 9  string::size_type count = 0;
10 
11  for (string::size_type index = 0; index != s.size(); index++)
12  {
13         if(ispunct(s[index]))
14         {
15             count++;
16         }
17  }
18  cout<<count
19         <<" punctuation characters in "
20         <<s<<endl;
21 }

?

(示例2:把string對象中的字母全部大寫字母輸出)

 1 #include <iostream>
 2 #include <string>
 3 #include <cctype>
 4 using namespace std;
 5 
 6 void main()
 7 {
 8     string s("!Hello LatourEiffel!!!");
 9     
10     for (string::size_type index = 0; index != s.size();index++)
11     {
12         s[index] = toupper(s[index]);
13     }
14     cout<<s<<endl;
15 }

?

18.標準庫vector類型:
vector是同一種類型的對象的集合,每個對象都有一個對應的整數索引值.

通過將類型放在類模版名稱后面的<>中類指定數據類型:
vector<int> ivec;
vector<Sales_item> Sales_vec;

vector不是一種數據類型,而只是一個類模版.
vector類型的每一種都指定了其保存元素的類型,
如vector<int>和vector<string>都是數據類型.

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(10,-1);?//10 elements,each initialized to -1
vector<string> svec(10,"hi!");?//10 strings,each initialized to "hi!"

19.vector對象的操作:
v.empty()?  如果v為空,則返回true,否則返回false
v.size()?  返回v中元素的個數
v.push_back(t)?  在v的末尾增加一個值為t的元素
v[n]??  返回v中位置為n的元素
v1 = v2??  把v1的元素替換為v2中元素的副本
v1 == v2?  如果v1與v2相等,則返回true

注意:vector中size和empty的操作和string中相關操作類似:
vector<int>::size_type

20.vector的下標操作不能添加元素:
vector<int> ivec;
for (vector<int>::size_type ix = 0; ix != 10; ++ix)
?{
??ivec[ix] = ix;
?}
錯誤:上述程序中的ivec是空的vector對象,而下標只能用于獲取已存在的元素.
正確寫法如下:
for (vector<int>::size_type ix = 0; ix != 10; ++ix)
{
?ivec.push_back(ix);//ok!
}


?

轉載于:https://www.cnblogs.com/LatourEiffel/archive/2012/11/24/2785732.html

總結

以上是生活随笔為你收集整理的C++Primer学习笔记(二)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。