草庐IT

stl-algorithm

全部标签

c++ - STL vector : resize() and assign()

有一个类(class)成员std::vectorv和intn,在此vector上使用以下内容有什么区别?,未初始化:v.assign(n,0.0);或v.resize(n,0.0); 最佳答案 assign将大小设置为n并将所有元素值设置为0.0,而resize将大小设置为n并且只有new元素值为0.0。如果v事先为空,它们是相同的,但assign可能更清楚。 关于c++-STLvector:resize()andassign(),我们在StackOverflow上找到一个类似的问题:

c++ - STL vector : resize() and assign()

有一个类(class)成员std::vectorv和intn,在此vector上使用以下内容有什么区别?,未初始化:v.assign(n,0.0);或v.resize(n,0.0); 最佳答案 assign将大小设置为n并将所有元素值设置为0.0,而resize将大小设置为n并且只有new元素值为0.0。如果v事先为空,它们是相同的,但assign可能更清楚。 关于c++-STLvector:resize()andassign(),我们在StackOverflow上找到一个类似的问题:

c++ - 是否有正确处理 Unicode 的 STL 字符串类?

我对std::string和std::wstring了如指掌,但他们似乎并没有完全关注UTF-8和UTF-16的扩展字符编码(至少在Windows上)。也不支持UTF-32。那么有人知道提供完整UTF-8、UTF-16和UTF-32支持的跨平台插入式替换类吗? 最佳答案 我们不要忘记轻量级、非常用户友好、只有header的UTF-8库UTF8-CPP.不是直接替代品,但可以很容易地与std::string结合使用,并且没有外部依赖项。 关于c++-是否有正确处理Unicode的STL字符

c++ - 是否有正确处理 Unicode 的 STL 字符串类?

我对std::string和std::wstring了如指掌,但他们似乎并没有完全关注UTF-8和UTF-16的扩展字符编码(至少在Windows上)。也不支持UTF-32。那么有人知道提供完整UTF-8、UTF-16和UTF-32支持的跨平台插入式替换类吗? 最佳答案 我们不要忘记轻量级、非常用户友好、只有header的UTF-8库UTF8-CPP.不是直接替代品,但可以很容易地与std::string结合使用,并且没有外部依赖项。 关于c++-是否有正确处理Unicode的STL字符

c++ - STL 删除没有按预期工作?

intmain(){constintSIZE=10;inta[SIZE]={10,2,35,5,10,26,67,2,5,10};std::ostream_iteratoroutput(cout,"");std::vectorv(a,a+SIZE);std::vector::iteratornewLastElement;cout数组a中有3个10。为什么我们用remove函数删除所有10后数组v包含一个10。您还可以看到编译后的输出here 最佳答案 实际上std::remove不会从容器中删除项目。引自hereRemoveremo

c++ - STL 删除没有按预期工作?

intmain(){constintSIZE=10;inta[SIZE]={10,2,35,5,10,26,67,2,5,10};std::ostream_iteratoroutput(cout,"");std::vectorv(a,a+SIZE);std::vector::iteratornewLastElement;cout数组a中有3个10。为什么我们用remove函数删除所有10后数组v包含一个10。您还可以看到编译后的输出here 最佳答案 实际上std::remove不会从容器中删除项目。引自hereRemoveremo

c++ - 任何 STL 数据结构,如 pair 提供三个项目(类型)而不是两个?

问题1:我正在使用C++11,并且正在学习。我意识到我可以用两对来做到这一点:pair,>,>这是最好的方法吗?问题2:如果我不需要不同的类型,那么两个项目的类型相同,使用pair是否浪费,那我应该使用什么?三个项目?(又是同一类型) 最佳答案 使用std::tuple:std::tuple请注意std::tuples支持存储在其中的任意数量的类型。此外,要访问这些元素,你不能做得很好pair.first/pair.second,您必须使用语法std::get(tuple),其中n是您要检索的元素。

c++ - 任何 STL 数据结构,如 pair 提供三个项目(类型)而不是两个?

问题1:我正在使用C++11,并且正在学习。我意识到我可以用两对来做到这一点:pair,>,>这是最好的方法吗?问题2:如果我不需要不同的类型,那么两个项目的类型相同,使用pair是否浪费,那我应该使用什么?三个项目?(又是同一类型) 最佳答案 使用std::tuple:std::tuple请注意std::tuples支持存储在其中的任意数量的类型。此外,要访问这些元素,你不能做得很好pair.first/pair.second,您必须使用语法std::get(tuple),其中n是您要检索的元素。

c++ - 支持 C++11 的开源 STL 实现

简而言之,我正在寻找STLPort的替代品。STLPort已经有一段时间没有更新了(自2008年以来?)并且缺乏C++11支持。有谁知道任何替代方案?我需要为各种架构和各种目标操作系统使用各种工具链进行编译。我将开始研究GNUC++实现,看看它与GCC工具链作为替代方案的关联程度,并将返回结果。但是,如果有人在这里有任何前期知识,那就太好了。对此的替代方案是实现各种关键的C++11STL特性,如新的智能指针类型和std::threads。最坏的情况下,我可能可以从boost中提取智能指针。就pthread或Windows线程而言,是否有任何std::threads实现?谢谢

c++ - 支持 C++11 的开源 STL 实现

简而言之,我正在寻找STLPort的替代品。STLPort已经有一段时间没有更新了(自2008年以来?)并且缺乏C++11支持。有谁知道任何替代方案?我需要为各种架构和各种目标操作系统使用各种工具链进行编译。我将开始研究GNUC++实现,看看它与GCC工具链作为替代方案的关联程度,并将返回结果。但是,如果有人在这里有任何前期知识,那就太好了。对此的替代方案是实现各种关键的C++11STL特性,如新的智能指针类型和std::threads。最坏的情况下,我可能可以从boost中提取智能指针。就pthread或Windows线程而言,是否有任何std::threads实现?谢谢