草庐IT

stl_algobase

全部标签

c++ - 为什么 STL/Boost C++ 编码风格与其他人如此不同?

已结束。这个问题是off-topic.它目前不接受答案。想要改进这个问题?Updatethequestion所以它是on-topic堆栈溢出。关闭9年前。Improvethisquestion我是一个相当菜鸟的C++程序员,但在我对这门语言的有限经验中,大多数标准C++风格指南(例如GoogleC++StyleGuidelines)与STL和boost库中实现的内容背道而驰。例如,C++标准库和Boost中的类名总是小写,用下划线分隔单词(例如std::vector、boost::unordered_map、std::map::const_iterator),而我看到的大多数C++风格

c++ STL设置差异

C++STL集合数据结构有集合差分算子吗? 最佳答案 是的,它在并被称为:std::set_difference.用法是:#include#include#include//...std::sets1,s2;//Fillins1ands2withvaluesstd::setresult;std::set_difference(s1.begin(),s1.end(),s2.begin(),s2.end(),std::inserter(result,result.end()));最后,集合result将包含s1-s2.

c++ - 如何在 GDB 中漂亮地打印 STL 容器?

我已按照说明ontheGDBwiki安装用于查看STL容器的pythonpretty-print。我的~/.gdbinit现在看起来像这样:pythonimportsyssys.path.insert(0,'/opt/gdb_prettyprint/python')fromlibstdcxx.v6.printersimportregister_libstdcxx_printersregister_libstdcxx_printers(None)end但是,当我运行GDB并尝试打印STL类型时,我得到以下信息:printmyStringPythonExceptionNotypenamed

c++ - STL 中是否有排序容器?

STL中有排序容器吗?我的意思是:我有一个std::vector,其中Foo是一个定制的类。我也有某种比较器,它将比较类的字段Foo.现在,我正在代码中的某个地方:std::sort(myvec.begin(),myvec.end(),comparator);它将根据我在比较器中定义的规则对vector进行排序。现在我想插入一个Foo类的元素进入那个vector。如果可以的话,我只想写:mysortedvector.push_back(Foo());然后vector会根据比较器将这个新元素放到它的位置。相反,现在我必须写:myvec.push_back(Foo());std::sort

c++ - STL 中是否有排序容器?

STL中有排序容器吗?我的意思是:我有一个std::vector,其中Foo是一个定制的类。我也有某种比较器,它将比较类的字段Foo.现在,我正在代码中的某个地方:std::sort(myvec.begin(),myvec.end(),comparator);它将根据我在比较器中定义的规则对vector进行排序。现在我想插入一个Foo类的元素进入那个vector。如果可以的话,我只想写:mysortedvector.push_back(Foo());然后vector会根据比较器将这个新元素放到它的位置。相反,现在我必须写:myvec.push_back(Foo());std::sort

c++ - Google C++ 风格指南的无异常(exception)规则; STL?

Google的C++styleguide说“我们不使用异常(exception)”。该风格没有提到关于异常使用的STL。由于STL分配器可能会失败,它们如何处理容器抛出的异常?如果他们使用STL,调用方如何获知分配失败?push_back()或mapoperator[]等STL方法不返回任何状态码。如果他们不使用STL,他们使用什么容器实现? 最佳答案 他们说他们不使用异常,并不是说没有人应该使用它们。如果你看看他们也写的理由:BecausemostexistingC++codeatGoogleisnotpreparedtodeal

c++ - 将 map 值复制到 STL 中的 vector

这个问题在这里已经有了答案:Howtoretrieveallkeys(orvalues)fromastd::mapandputthemintoavector?(23个回答)关闭10个月前。目前正在通过有效的STL工作。第5项建议使用范围成员函数通常比使用它们的单元素对应物更可取。我目前希望将map中的所有值(即-我不需要键)复制到vector。最干净的方法是什么? 最佳答案 您可能会使用std::transform为了这个目的。不过,我可能更喜欢Neils版本,这取决于更具可读性。xtofl的示例(见评论):#include#inc

c++ - 从 STL 容器继承实现而不是委托(delegate)可以吗?

我有一个类可以调整std::vector来为特定领域对象的容器建模。我想向用户公开大部分std::vectorAPI,以便他们可以在容器上使用熟悉的方法(大小、清除、at等)和标准算法。这似乎是我设计中反复出现的模式:classMyContainer:publicstd::vector{public://Redeclareallcontainertraits:value_type,iterator,etc...//Domain-specificconstructors//(moreusefultotheuserthanstd::vectorones...)//Addafewdomain

c++ - 如何找到两个 STL 集的交集?

我一直试图在C++中找到两个std::set之间的交集,但我一直收到错误。我为此创建了一个小样本测试#include#include#include#includeusingnamespacestd;intmain(){sets1;sets2;s1.insert(1);s1.insert(2);s1.insert(3);s1.insert(4);s2.insert(1);s2.insert(6);s2.insert(3);s2.insert(0);set_intersection(s1.begin(),s1.end(),s2.begin(),s2.end());return0;}后一个

c++ - 如何对 STL vector 进行排序?

我想对vector进行排序vectorobject;其中myclass包含许多int变量。如何根据myClass的任何特定数据变量对我的vector进行排序。 最佳答案 std::sort(object.begin(),object.end(),pred());在哪里,pred()是定义myclass对象顺序的函数对象.或者,您可以定义myclass::operator.例如,您可以传递一个lambda:std::sort(object.begin(),object.end(),[](myclassconst&a,myclassco