最有用或最令人惊叹的 STL 短衬里

2024-01-29

我正在寻找适合几行的 C++/STL 代码的实用和教育示例。我最喜欢的是:

  1. 清空向量以释放其保留的内存:

    vector <...>().swap (v)
    

    (与临时交换)

  2. 将地图复制到向量:

    map<T1, T2> myMap;
    vector< pair<T1, T2> > myVec(myMap.begin(), myMap.end());
    // or
    myVec.assign(myMap.begin(), myMap.end());
    
  3. 定制、非升压拆分:

    vector<string> &mysplit(const string &s, char delim, vector<string> &elems) {
        stringstream ss(s);
        string item;
        while(getline(ss, item, delim)) { elems.push_back(item); }
        return elems;
    }
    

我最喜欢的是将容器复制到输出: 并将输入流复制到容器中。

#include <vector>
#include <algorithm> 
#include <iterator>
#include <iostream>

int main()
{
    std::vector<int>   data;
    std::copy(std::istream_iterator<int>(std::cin),
              std::istream_iterator<int>(),
              std::back_inserter(data)
             );

    std::copy(data.begin(),data.end(),
              std::ostream_iterator<int>(std::cout,"\n")
             );
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最有用或最令人惊叹的 STL 短衬里 的相关文章

随机推荐