草庐IT

string.format

全部标签

c++ - std::basic_string 完全特化(g++ 冲突)

我正在尝试定义std::basic_string,allocator>的完全特化这是由定义的(在g++中)标题。问题是,如果我包含首先,g++将typedef视为basic_string的实例化并给我错误。如果我先进行特化,那么我就没有问题。我应该能够在之后定义我的特化已经包括了。我必须做什么才能做到这一点?我的代码:#include//#include//classbasic_string,allocator>{public:intblah(){return42;}size_tsize(){return0;}constchar*c_str(){return"";}voidreserv

c++ - string::compare 多余的参数?

在C++referenceonstring::compare,有以下重载:intcompare(size_tpos1,size_tn1,conststring&str,size_tpos2,size_tn2)const;它有两个参数n1和n2在我看来应该总是相等的或者函数返回一个int等于true(string::compare返回值0(false)表示相等的字符串)。这个对吗?如果不是,您能否提供一个示例来说明如果比较的长度不等(n1!=n2),则比较结果为false?谢谢! 最佳答案 inmyeyesshouldalwaysbe

c++ - 在 std::string 中,是否可以在不使用循环的情况下找到一组字符串中的第一个?

在std::string中,是否可以在不使用循环的情况下找到一组字符串中的第一个?例如:std::stringstr("aaabbbcccdddeeefffggg");std::vectorvs;vs.push_back("ccc");vs.push_back("fff");size_tpos=0pos=str.find(vs,pos);//谢谢! 最佳答案 您可以将字符串(使用字符串流)拆分为一个vector,然后将std::find_first_of与四个迭代器一起使用。这是一个完整的代码示例#include#include#i

c++ - 当你有一个 std::string 时如何使用 basic_istream

我有一个使用basic_istream作为参数的函数,我有一个std::string和我需要传递给它的数据。我该怎么做? 最佳答案 您可以将字符串数据放入流中:std::stringx;std::stringstreamss(x);//putstringintostreamfunction_taking_stream(ss); 关于c++-当你有一个std::string时如何使用basic_istream,我们在StackOverflow上找到一个类似的问题:

c++ - 如何将 char 数组放入 std::string

我分配了一个char数组然后我需要将它作为一个字符串返回,但我不想复制这个char数组然后释放它的内存。char*value=newchar[required];f(name,required,value,NULL);//fillthearraystrResult->assign(value,required);delete[]value;我不想像上面那样做。我需要将数组放在std字符串容器中。我该怎么做?编辑1:我知道我不应该这样做,并且该字符串不是为此目的而设计的。MB有人知道我可以使用的char数组的另一个容器实现吗? 最佳答案

c# - __declspec(dllexport)::vector <std::string>

我一直在努力弄清楚如何将字符串数组从C++DLL返回到C#应用程序,但我对如何执行此操作或在非常基础的级别上查找文章感到困惑。假设我有下面的代码。如何修复粗体线:extern"C"{__declspec(dllexport)intGetANumber();//unsureonthisline:**__declspec(dllexport)::vectorListDevices();**}extern::vectorGetStrings(){vectorseqs;returnseqs;}externintGetANumber(){return27;}谢谢马特

c++ - swig 对基类 'std::string' 一无所知,忽略

我正在尝试使用swig围绕C++库构建ruby​​包装器。其中大部分似乎都有效,但我有一个问题,我很确定与上述警告有关。看起来我正在包装的类之一是从std::string继承的。我在运行swig时看到上面的警告消息。当我在应该返回字符串的ruby​​对象上调用方法时,我看到了这个SWIG::Type_p_std__string:0x.....我在想我需要解决上面的警告,让它起作用,有什么想法吗? 最佳答案 SWIG提示它不知道std::string类,因此无法为其生成代码。SWIG库std_string.i具有用于将C++字符串映射

c++ - 什么时候在 C++ 程序的开头使用 '#include <string>'?

我对#include的使用感到困惑在程序的开始。例如,在下面的代码中,我不使用#include但该函数在运行时仍会打印出字符串“Johnny'sfavoritenumberis”。#includeusingnamespacestd;voidprintVariable(intnumber){cout但是,在下面的代码中,它确实包含#include.#include#includeusingnamespacestd;classVar{public:voidsetName(stringx){name=x;}stringgetName(){returnname;}private:stringn

c++ - 从 std::stringstream 传递 std::string 引用作为参数

我正在使用std::stringstream构造一个字符串,然后尝试将完成的字符串作为对函数的引用传递,该函数将std::string&作为参数。我在GCC上遇到编译错误:../src/so.cpp:22:21:error:invalidinitializationofnon-constreferenceoftype‘std::string&{akastd::basic_string&}’fromanrvalueoftype‘std::basic_stringstream::__string_type{akastd::basic_string}’../src/so.cpp:12:6:e

c++ - 采用 `std::string` 的显式构造函数得到 `char*` 并且工作正常

将StringBuilder构造函数标记为显式我想我不能传入char*但似乎我可以,因为它编译得很好。classStringBuilder{public://StringBuilder(constchar*);explicitStringBuilder(std::strings){}};intmain(){StringBuilders1("hello");StringBuilders2(std::string("hello"));}http://cpp.sh/6uomq 最佳答案 basic_string采用字符指针的构造函数不是e