• std::vector<bool> 的要点


    #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<<'	';
        }
        std::cout<<std::endl;
    
        for (auto &t : int_vec) {
              t = 1;
        }
        for (auto const & t : int_vec) {
              std::cout<< t<<'	';
              
        }
        std::cout<< std::endl;
        return 0;
    }
    

    result

    如代码所示,非引用的遍历bool vector也会改变其值,在使用auto的情况下,必须显式的进行类型转换,使用bool来避免.

  • 相关阅读:
    TypeScript--变量
    TypeScript--Hello
    前端跨域的方式
    内存泄漏与垃圾回收机制
    前端拷贝
    React生命周期16版本
    Redux三大原则
    IE6常见CSS解析Bug及hack
    Redux的应用
    vue-router-基础
  • 原文地址:https://www.cnblogs.com/walnuttree/p/13533104.html
Copyright © 2020-2023  润新知