c/c++:auto在遍历中的使用

File : auto.cpp
Type : c++
Brief : c++ auto在遍历中的简单使用


int main(void)
{
    std::string str = "Hello auto";
    std::vector<std::string> vstr;
    vstr.push_back("Hello cpp");
    vstr.push_back("Hello auto");
    vstr.push_back("Hello world");

    // 遍历string
    for (int k = 0; k < str.size(); k ++)
        std::cout << str[k];
    std::cout << std::endl;

    // 使用auto遍历string
    for (auto ch:str)       // 按值
    {
        std::cout << ch;
        ch ++;
    }
    std::cout << "  " << str << std::endl;
    for (auto &ch:str)      // 按引用
    {
        std::cout << ch;
        ch ++;
    }
    std::cout << "  " << str << std::endl;


    // 遍历vector
    for (int k = 0; k < vstr.size(); k ++)
        std::cout << vstr[k] << "  ";
    std::cout << std::endl;
    for (std::vector<std::string>::iterator it = vstr.begin();
            it != vstr.end(); it ++)
        std::cout << *it << "  ";
    std::cout << std::endl;

    // 使用auto遍历vector
    for (auto &it:vstr)     // 按引用
    {
        std::cout << it << "  ";
        it = "Changed";
    }
    for (auto it:vstr)      // 按值
    {
        std::cout << it << "  ";
        it = "Not Changed";
    }

    return 0;
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [ yehuohan@gmail.com ]

文章标题:c/c++:auto在遍历中的使用

本文作者:Y

发布时间:2018-01-24, 15:22:12

最后更新:2019-05-21, 20:04:58

原始链接:http://yehuohan.github.io/2018/01/24/Gist/c&c++/c-auto%E5%9C%A8%E9%81%8D%E5%8E%86%E4%B8%AD%E7%9A%84%E4%BD%BF%E7%94%A8/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。