Questions tagged «stl»

标准模板库(STL)是包含通用容器,迭代器,算法和函数对象的C ++库。当C ++标准化时,STL的大部分被标准库所采用,并且标准库中的这些部分有时也被错误地统称为“ STL”。

7
push_back和emplace_back
我对push_back和之间的区别感到困惑emplace_back。 void emplace_back(Type&& _Val); void push_back(const Type& _Val); void push_back(Type&& _Val); 由于有一个push_back重载引用右值引用,我不太明白它的目的是emplace_back什么?




17
在std :: vector上进行迭代:无符号vs有符号索引变量
在C ++中迭代向量的正确方法是什么? 考虑下面的两个代码片段,这一段效果很好: for (unsigned i=0; i < polygon.size(); i++) { sum += polygon[i]; } 还有这个: for (int i=0; i < polygon.size(); i++) { sum += polygon[i]; } 产生warning: comparison between signed and unsigned integer expressions。 我是C ++领域的新手,所以unsigned变量对我来说有点令人恐惧,我知道unsigned如果使用不正确,变量可能很危险,所以-这正​​确吗?
469 c++  stl  unsigned  signed 

14
如何查找C ++ std :: map中是否存在给定键
我正在尝试检查给定键是否在地图中,但有些无法做到: typedef map<string,string>::iterator mi; map<string, string> m; m.insert(make_pair("f","++--")); pair<mi,mi> p = m.equal_range("f");//I'm not sure if equal_range does what I want cout << p.first;//I'm getting error here 所以我怎么打印p中的内容?
449 c++  dictionary  stl 


5
“ STL”和“ C ++标准库”有什么区别?
有人引起了我的注意,这篇文章声称(我的意思是) STL术语被误用来指代整个C ++标准库,而不是指从SGI STL中获得的部分。 (...)它指的是“ STL”,尽管实际上仍然很少有人使用STL(这是SGI设计的)。 C ++标准库的某些部分是基于STL的,因此很多人(包括数位作者和臭名昭著的cplusplus.com)仍然将这些部分称为“ STL”。但是,这是不准确的。实际上,C ++标准从不提及“ STL”,并且两者之间存在内容差异。 (...)“ STL”很少用于指代基于SGI STL的stdlib的位。人们认为这是整个标准库。它被放在简历上。这是一种误导。 我几乎不了解C ++的历史,因此我无法判断本文的正确性。我应该避免使用术语STL吗?还是这是一个孤立的意见?


9
为什么不能建立参考向量?
当我这样做时: std::vector<int> hello; 一切正常。但是,当我将其设为参考向量时: std::vector<int &> hello; 我收到可怕的错误,例如 错误C2528:“指针”:指向引用的指针不合法 我想将一堆对结构的引用放到一个向量中,这样我就不必插手指针了。为什么vector对此大发脾气?我唯一的选择是使用指针向量吗?


11
按降序对向量排序
我应该使用 std::sort(numbers.begin(), numbers.end(), std::greater<int>()); 要么 std::sort(numbers.rbegin(), numbers.rend()); // note: reverse iterators 按降序对向量排序?一种方法或另一种方法有什么优点或缺点?
310 c++  sorting  stl  vector  iterator 

14
从向量中提取子向量的最佳方法?
假设我有一个std::vector(myVec大小)N。构造一个由元素X到Y的副本组成的新矢量的最简单方法是什么,其中0 <= X <= Y <= N-1?例如,myVec [100000]通过myVec [100999]一个size的向量150000。 如果使用向量无法有效完成此操作,是否应该使用另一种STL数据类型呢?
295 c++  stl  vector  range 

23
删除重复项和对向量进行排序的最有效方法是什么?
我需要使用可能包含很多元素的C ++向量,删除重复项并对其进行排序。 我目前有以下代码,但无法正常工作。 vec.erase( std::unique(vec.begin(), vec.end()), vec.end()); std::sort(vec.begin(), vec.end()); 如何正确执行此操作? 另外,先擦除重复项(类似于上面的代码)还是先执行排序更快?如果我确实先执行排序,是否保证std::unique执行后仍保持排序? 还是有另一种(也许更有效)的方式来完成所有这些工作?
274 c++  sorting  vector  stl  duplicates 

4
std :: string length()和size()成员函数
我正在阅读此问题的答案,发现实际上有一个方法被要求length()使用std::string(我一直使用size())。在std::string课堂上使用此方法是否有任何特定原因?我同时阅读了MSDN和CppRefernce,它们似乎表明size()和之间没有区别length()。如果是这样,这是否会使该类的用户感到困惑?
263 c++  string  stl  size 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.