草庐IT

STL-string

全部标签

c++ - 为什么没有 std::string_view 的模板构造函数?

我正在阅读documentationforstd::string_view,我注意到这些是构造函数:constexprbasic_string_view()noexcept;constexprbasic_string_view(constbasic_string_view&other)noexcept=default;constexprbasic_string_view(constCharT*s,size_typecount);constexprbasic_string_view(constCharT*s);他们为什么不介绍这个?templateconstexprbasic_strin

c++ - 指针和 std::string - 奇怪的行为 - C++

我提前道歉,因为我在之前的帖子中问过同样的问题,但正如有人正确指出的那样,我没有发布真正的代码。因此,我再次问同样的问题,试图比以前更清楚。作为练习,我正在创建一个操作字符串的程序。特别是,我想删除包含在2个“*”之间的部分字符串。我必须强调,我已经使用库字符串的函数成功地创建了相同的程序;事实上,问题涉及使用char指针对给定字符串的操作。我将发布完整的代码并进行深入讨论。#include#includeusingnamespacestd;intmain(){stringfrase;getline(cin,frase);//Takesasinputthephraseintsize=f

c++ - 函数调用参数,char * vs string 默认构造函数

在C++11及更高版本中调用函数/方法时,哪个更好(如果有区别)?让我们假设这个函数/方法:voidfunc(std::strings){...}以下哪一个最好?func(std::string())或func("")更一般地说,在初始化或参数传递期间始终显式调用构造函数是否有任何优势? 最佳答案 最好调用默认构造函数,因为它保证不会做任何不必要的工作。当传递一个空字符串文字时,可能是字符串实现做了一些处理该字符串的工作(例如计算它的长度)。空字符串文字不是可以与非空字符串文字区别对待的Elixir。它的类型是constchar[1

c++ - 什么是非空 STL 删除的安全等价物?

假设我有一个hash_map和一个类似的代码//iisaniteratori=hash_map.erase(i)但是GCC的STL在erase中返回的不是iterator,而是一个void。现在是这样的代码hash_map.erase(i++)安全(即不会使迭代器无效或做任何其他意外或不愉快的事情)?请注意这是一个hash_map。 最佳答案 是的,这是安全的,因为在当前值被删除之前,i的值将被设置为下一个值。根据SGIdocumentationabouthashedcontainers未删除的元素不会发生失效,甚至调整大小也不会发

【c++】STL之stack和queue详解

>作者简介:დ旧言~,目前大二,现在学习Java,c,c++,Python等>座右铭:松树千年终是朽,槿花一日自为荣。>目标:掌握stack和queue库,了解deque库>毒鸡汤:小时候,哭是我们解决问题的绝招,长大后,笑是我们面对现实的武器。>望小伙伴们点赞👍收藏✨加关注哟💕💕 🌟前言今天咱们学习stack和queue,咱们还是依照官网来学习:stack-C++Reference(cplusplus.com)queue-C++Reference(cplusplus.com)⭐主体        在数据结构初阶中,我们模拟实现了stack和queue,只能说我们知道栈和队列,但是栈和队列的底

c++ - boost::interprocess::basic_string 作为 std::string

我正在尝试用constboost::interprocess::basic_string&替换返回conststd::string&的类方法。我面临的主要挑战是这两个类之间的不兼容性,尽管它们的实现相似。为了更清楚的解释,我将把它放入代码中classA{std::stringm_str;conststd::string&StrVal(){returnm_str;}}现在这个类看起来像这样:typedefboost::interprocess::allocatorShmemAllocatorChar;typedefboost::interprocess::basic_string,Shm

c++ - "STL"和 "C++ Standard Library"之间是否有清晰的分隔定义?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:What'sthisSTLvs.“C++StandardLibrary”fightallabout?我非常习惯STL(“标准模板库”)这个术语,当我真正指的是C++标准库时,我发现自己经常使用它。因此,由于如今C++(-11)标准库中的几乎所有内容都是模板,我想知道:在C++标准库中是否定义了什么是STL,什么不是?也许是容器、流、算法等?或者我应该停止使用术语“STL”,因为它是SGI(对吗?)多年前用于其lib的历史性术语?这将是困难的...

c++ - STL的第一个实现

我对看到C++标准模板库的第一个实现非常感兴趣。好吧,这是出于历史原因。我很想知道图书馆在这段时间里是如何演变的。正式可用的STL的第一个版本(实现)是什么?何时何地发表?我怎样才能得到它? 最佳答案 您可以在Stepanov为收集他的论文而设立的网站上了解他对泛型编程思想的发展:http://www.stepanovpapers.com/ 关于c++-STL的第一个实现,我们在StackOverflow上找到一个类似的问题: https://stackove

带有日期的 c++ to_string 错误

我正在尝试编写一个将日期作为字符串返回的函数。我这样做是这样的:stringdate()//includesnotlistedforsakeofspace,usingnamespacestd{tmtimeStruct;intcurrentMonth=timeStruct.tm_mon+1;intcurrentDay=timeStruct.tm_mday;intcurrentYear=timeStruct.tm_year-100;stringcurrentDate=to_string(currentMonth)+"/"+to_string(currentDay)+"/"+to_strin

c++ - 有没有更好的方法来检查 STL 容器是否是多*容器

在为适用于各种标准C++11容器的框架编写单元测试期间,我跨过了我想以通用方式创建测试数据的问题。这里我需要知道关联容器C是否是multi*容器。例如。如果C是std::set或std::multiset。我搜索了所有这些容器的接口(interface),它们的共同点是它们都有一个insert(value_typeconst&)方法。但从我的角度来看,显着的区别在于multi*版本只返回一个迭代器,而“非”multi*版本返回一个std::pair。所以我选择这个作为差异化因素。我的结果代码是:#include#includetemplateclassis_multi_containe