std::vector<bool> 的要點
阿新 • • 發佈:2020-08-20
#include <iostream> #include <vector> #include <memory.h> #include <stdio.h> int main() { int size_v = 10; std::vector<int> tmp(5, 0); int * tmp_pt = tmp.data(); memset(tmp_pt, 0, 5 * 4); std::vector<int> myvector(5); int* p = myvector.data(); std::vector<bool> b_vec(5,true); for(auto t : b_vec) { std::cout<<std::boolalpha <<t<<std::endl; } for (auto b : b_vec) { b = false; } for (auto const & b : b_vec) { std::cout << std::boolalpha << b << std::endl; } std::vector<int> int_vec(5,0); for(auto & t : int_vec) { std::cout<<t<<'\t'; } std::cout<<std::endl; for (auto &t : int_vec) { t = 1; } for (auto const & t : int_vec) { std::cout<< t<<'\t'; } std::cout<< std::endl; return 0; }
如程式碼所示,非引用的遍歷bool vector也會改變其值,在使用auto的情況下,必須顯式的進行型別轉換,使用bool來避免.