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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

猎豹网校C++ Primer学习笔记

發布時間:2024/8/1 c/c++ 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 猎豹网校C++ Primer学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、頭文件(15th課)

大型項目開發,要有很多頭文件。只能寫聲明,不能定義(類定義和常量定義可以)。

自己新建頭文件(類定義,外部變量聲明,函數聲明)。源文件包含對應的頭文件。

頭文件里寫類的聲明,源文件里寫類的定義,類的所有成員。

為避免預處理重復拷貝,頭文件保護符。防止多重包含。

2、命名空間(16th)

注意:頭文件里不能使用using聲明,用的話直接寫全。

?3、標準庫string類型(17th)字符容器

?

?using std::string;

si種初始化方法:()小括號是調用string對象的構造函數。

先初始化后再賦值,別這么寫。

?

?4、cin讀入特點,遇空格暫停

cin>>name,也可以忽略掉前面的格式,如換行、空格、Tab。

遇空格暫停,但空格還在輸入流里。下一次讀取時,再次對前段格式處理,忽略空格。

改為使用getline(cin,name);

//在VS中使用cin>>會閃退,原因未知,用getline就正常。

#include "stdafx.h" #include<iostream> #include<string> using namespace std; int main() {string name;cout <<"input sth" << endl;//cin>>name; getline(cin,name);cout << name << endl;getchar();return 0; }

?需要在cin>>后面加上cin.ignore():

cin>>name;
cin.ignore();

5、循環讀入

循環讀入,一次讀入一行。

Win+z結束。輸入重定向<。

一次讀入一個單詞,循環讀入。

?6、string類型的操作。.size(),.empty()

7、字符串拼接操作,+號兩邊必須有一個是string類型的!

循環讀入并拼接:

8、string下標操作

?

循環操作string

使用C中的函數:但要加上頭文件#include<cctype>

實現忽略標點符號的輸出。

9、vector動態數組、類模板

?#include<vector>;using namespace std;

可以使用下標索引。.push_back()尾部加數據。

vector<int> ivec;

初始為空,不可以通過下標操作添加數據。(1.初始就給長度;2.先cin>>temp,后再push)

vector<int> ivec(10);

其下標索引類型與string相似,size_type。

vector<int>::size_type index=1;

?循環讀入數據進vector

計算首尾兩個數之和:

?

練習代碼,這種循環讀入形式需以ctr+Z結束。

#include "stdafx.h" #include<iostream> #include<string> #include<vector>using namespace std; int main() {cout<<"Input sth.:"<<endl;string str;vector<string> ivec;while(cin>>str){ivec.push_back(str);}//cin.ignore();//ivec.push_back(str);cout<<ivec[0]<<endl;getchar();return 0; }

?

?循環讀入單詞并輸出:判斷長度要用.size()

#include "stdafx.h" #include<iostream> #include<string> #include<vector>using namespace std; int main() {cout<<"Input sth.:"<<endl;string str;vector<string> ivec;while(cin>>str){ivec.push_back(str);} // for(vector<string>::size_type ix=0;ix!=sizeof(ivec);ix++)for(vector<string>::size_type ix=0;ix!=ivec.size();ix++){cout<<ivec[ix]<<endl;}cout<<"sizeof:"<<sizeof(ivec)<<endl;cout<<".size():"<<ivec.size()<<endl;//cin.ignore();//ivec.push_back(str); getchar();return 0; } ; View Code

?10、iterator迭代器,不用下標遍歷

很多容器沒法用下標,但所有容器都有迭代器。

迭代器實際上是一個指針,通過解引用(*)修改數據和讀取數據。

常迭代器:

?11、四個二進制一組即16進制

四個一組后,權值向前遞次乘16。

十六進制數,可小寫可大寫。后面接H或前面加0x。

一個字節=8位二進制。

12、bitset<num>處理二進制

頭文件!

下標計數為倒序,從0開始。

初始化,可以使用字符串。

也可以使用鍵盤輸入來初始化:

.any();判斷是否有1

.none();判斷是否全是0

.count();計數1

.size()-.count();計數0

set(index)變成1,reset()把某位變成0,flip()翻轉。

二進制變成十進制:

?13、bitset應用-埃拉托斯特尼_篩法-尋找質數

先全初始化為1,然后從頭開始向后篩選,遇倍數則置0。.count()可以統計質數個數,貌似應該-1。

然后循環輸出即可:

?

改進1,只篩到根號即可。改進2,從平方處開始篩。

#include<cmath>

500萬都沒問題。

?

轉載于:https://www.cnblogs.com/wxl845235800/p/11396323.html

總結

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

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