本博客知識記錄自己學習中的筆記或者記錄,如果有錯誤歡迎大家糾正。
本節主要大致瞭解了定義在algorithm中的算法,使用迭代器作爲範圍。
算法不能改變容器大小,切記
10.1 使用algorithm中定義好的count函數 得到vector容器中的值
代碼如下
#include <iostream>
#include <algorithm>
#include <vector>
#include "stdlib.h"
#include <string>
int main()
{
int inputNumber = 0;
std::vector<int> vectorIntA;
while (std::wcin>>inputNumber )
{
vectorIntA.push_back(inputNumber );
}
//如果想要結束循環輸入 在win平臺應該同時按下 ctrl+z;
std::cout <<std::endl<< "input need count number"<< std::endl;
int countNumberK= 0;
std::cin >> countNumberK;
std::cout <<countNumberK<<" count is = "<<count(vectorIntA.cbegin(), vectorIntA.cend(),countNumberK) << std::endl;
system("pause");
return 0;
}
輸出結果爲
10.2 讀取string序列存入到list中
#include <iostream>
#include <algorithm>
#include <list>
#include "stdlib.h"
#include <string>
int main()
{
std::string s;
std::list<std::string>listString;
unsigned int stringCount = 0;
std::cin>>stringCount;
for (size_t i = 0; i < stringCount; i++)
{
std::cin >> s;
listString.push_back(s);
}
std::cout << std::endl << "input need find string" << std::endl;
std::string findString = "";
std::cin >> findString;
std::cout << findString << " count is = " << count(listString.begin(), listString.end(), findString) << std::endl;
system("pause");
return 0;
}
輸出結果爲
如果有人細心發現 在上面兩個題目中使用了兩種迭代器 方式 cbegin 和begin兩種 他們的區別在於:
cbegin 相當於 const_iterator 可以用於 const 容器 和 非const容器 不能修改指向元素的值,但可以改變指向的元素。
begin 是能修改稿指向元素的值也可以修改指向的元素。
如果有人知道爲什麼不能在結束循環輸入string之後再繼續輸入string的問題歡迎留言告知我,謝謝。