vector<int> numbers = {1,5,4,3,5,6,3,2,3,2,4,2,1,3};
#include<algorithm>
int vector<int> numbers2;
numbers2 = numbers;
numbers.clear();
auto slice = vector<int>(numbers.begin()+2,numbers.begin()+6);
//{4 3 5 6}
vector<string> bag2{"凝血丹","乾糧"};
bag.emplace( bag.end(), bag2.begin(), bag.end() );
// 這看起來有點難理解
// 意思其實是在bag的最後面(bag.end())
// 加入 bag2的所有(從begin()到end())變量
// bag現在包含了 {"屠龍刀","睏仙索","桂圓","?","凝血丹","乾糧"}
尋找第一個符合(function)條件的元素
* 專門尋找一個元素的Index
auto result = find(numbers.begin(),numbers.end(),3);
auto index = distance(numbers.begin(),result);
//我們先建一個數字例子
vector<int> numbers = {1,5,4,3,5,6,3,2,3,2,4,2,1,3};
auto result = find_if(numbers.begin(),numbers.end(),[](auto element){
return element > 5;
});
element
是vector裏每個元素的名字,你可以改成其他名字都可以,例如下面auto result = find_if(numbers.begin(),numbers.end(),[](auto i){
return i > 5;
});
auto morethan5(int element){
return element > 5;
}
auto result = find_if(numbers.begin(), numbers.end(), morethan5);
//拿取結果一定要在result前打*的
cout << *result << endl;
auto result = find_if(numbers.begin(),numbers.end(),[](auto element){
return element > 5;
});
auto index = distance(numbers.begin(),result);
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
vector<int> numbers = {1,5,4,3,5,6,8,2,3,7,4,9,1,3};
auto result = find_if(numbers.begin(),numbers.end(),[](auto element){
return element > 5;
});
auto index = distance(numbers.begin(),result);
cout << "搜尋結果是" << *result << "。\n他的位置是" << index << "。\n";
return 0;
}
搜尋結果是6。
他的位置是5。
//建立一個篩選Vector/List/Deque
vector<int> filtered(numbers.size());
auto it = copy_if (numbers.begin(), numbers.end(), bar.begin(), [](int element){
return element > 5;
});
//Filtered 會變成{6,8,7,9}
for(auto& number:numbers){
cout << number<< " ";
}
cout << endl;
for(auto& number:numbers){
number *= 2;
}
//我故意把他分拆,以證明他是真的改動了數字
for(auto& number:numbers){
cout << number<< " ";
}
cout << endl;
將條件運算後重新組合並複寫到一個數量等於 vector.size的陣列
//建立一個篩選Vector/List/Deque
vector<int> multiply2(numbers.size());
auto it = transform(numbers.begin(), numbers.end(), multiply2, [](int element){
return element*2;
});
//multiply2 會變成{2 10 8 6 10 12 6 4 6 4 8 4 2 6}
#include<execution>
,#include<numeric>
,C++17以上才能用vector<int> smallNum = {1,4,2,3};
//這是總和而已
auto sum = reduce(execution::par,smallNum.begin(),smallNum.end());
auto max = reduce(execution::par,smallNum.begin(),smallNum.end(),[](auto ans, auto next){
return max(ans,next);
});
execution::par
代表他用parrallel方式運行,也就是多線程#include<numeric>
,舊版reduce(C++17以前版本的可以當這個reduce用)vector<int> smallNum = {1,4,2,3};
//這是總和而已
auto sum = reduce(smallNum.begin(),smallNum.end(),0);
auto max = reduce(smallNum.begin(),smallNum.end(),0,[](auto ans, auto next){
return max(ans,next);
});
//在開頭刪除一個變量
people_age.erase(people_age.begin());
//在結尾刪除一個變量
people_age.erase(people_age.end());
//刪除第五個變數
people_age.erase(people_age.begin()+4);
//刪除第三到第八個變數
people_age.erase(people_age.begin()+2, people_age.begin()+8);
reverse(people_age.begin(), people_age.end());
sort(people_age.begin(), people_age.end());
is_sort()
vector<int> row = {1,4,3,5,23}
vector<vector<int>> 2DVec;
2DVec.emplace_back(row);
/*這時vector是:
* {
* {1,4,3,5,23}
* }
*/
2DVec.emplace_back(row);
2DVec[1].erase(row.end());
/*這時vector是:
* {
* {1,4,3,5,23},
* {1,4,3,5}
* }
*/
介紹:Leetcode 現在是全世界最大的程序題目網站,有很多題目可以練,不但有趣,不少面試題目都是在leetcode裏改一點考人的。
If 與 vector尋找:Find Common Characters
2D Vector 概念:Flipping An Image
明天應該談String吧我想
##在指定位置刪除變量/一群變量 :這裡是不是少了一個空白
//刪除第五個變數:那一行的begin 是不是少了()
謝謝你了