草庐IT

c++ - iostream 使用 << 构造字符串

intiCount;charszB[128];sprintf(szB,"%03i",iCount); 最佳答案 usingnamespacestd;stringstreamss;ss 关于c++-iostream使用 https://stackoverflow.com/questions/2168362/

c++ - 重载 << 运算符和递归

我尝试了以下代码:#includeusingstd::cout;usingstd::ostream;classX{public:friendostream&operator当我编译并运行它时,它符合预期;一个无限循环。如果我删除友元函数中的cout语句,递归就不会发生。为什么会这样? 最佳答案 Optimizer决定您所有剩余的事件都没有效果,并将其优化掉。对与错是另一回事。特别是:Xx;创建空对象“x”cout调用:return(os追加空对象;编译器注意到自上次调用以来“os”没有增长,并且没有显示任何进一步这样做的promis

c++ - C++ 中的 boost::bind 和 << 运算符

我想绑定(bind)for_each(begin,end,boost::bind(&operator不幸的是它不起作用:Error1errorC2780:'boost::_bi::bind_t::type,boost::_mfi::dm,_bi::list_av_1::type>boost::bind(MT::*,A1)':expects2arguments-3providedc:\source\repository\repository\positions.cpp90我做错了什么? 最佳答案 相反,您可以尝试boost.lambd

C++ 将字符串数组 [] 复制到 vector <string>

所以我正在使用成员函数“插入”创建此类,以从字符串数组复制到作为vector数组的类内容。这个中止错误不断弹出,说我正在越过Vector端,但我不明白为什么......代码如下:///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Mapclass/////////////////////classMap{private://////////////////////////////////////

c++ - 为优先级队列重载运算符<

我正在尝试为我制作的类创建一个优先级队列-std::priority_queuenodes;我像这样重载了Position中的boolPosition::operator但是,每当我尝试编译时,我都会收到此错误消息,提示error:nomatchfor‘operator我在这里错过了什么?感谢您的帮助。 最佳答案 关系运算符不应更改操作数。尝试:boolPosition::operator我的猜测是__x或__y(或两者)都是const。如果__x是const,则不能调用非常量成员函数,也不能将__y作为传递right参数,如果__

c++ - std::queue<T, list<T>>::size() 在 O(n) 中很慢?

我在使用队列的代码中遇到了意外的性能行为。我意识到当队列中有更多元素时性能会下降。事实证明,使用size()方法是原因。这是一些显示问题的代码:#include#include#include#include"Stopwatch.h"usingnamespacestd;structBigStruct{intx[100];};intmain(){CStopwatchqueueTestSw;typedefBigStructQueueElementType;typedefstd::queue>QueueType;//typedefstd::queueQueueType;//nosurpris

c++ - 如何用默认值填充 `std::vector<std::vector<T>>`?

所以我试试这个:std::vector>matrix(4);matrix[0][0]=1;matrix[0][1]=2;matrix[0][2]=3;matrix[0][3]=1;matrix[1][0]=1;matrix[1][1]=2;matrix[1][2]=3;matrix[1][3]=1;matrix[2][0]=1;matrix[2][1]=2;matrix[2][2]=3;matrix[2][3]=1;matrix[3][0]=1;matrix[3][1]=2;matrix[3][2]=3;matrix[3][3]=1;但是出了点问题,我的应用程序在运行时死机了=(怎么办

c++ - 使用 boost::tuple<bool, T> 来指示是否找到 T 是否好?

假设我们需要一个返回值的函数。但是那个东西是找不到的。我看到选项:1.Tfind(bool&ok);//returndefaultTvalueifnotfound我们可以创建一个结构体:templateclassCheckableValue{public:CheckableValue(),_hasValue(false){}CheckableValue(constT&t):_value(t),_hasValue(true){}inlineboolhasValue()const{return_hasValue}constT&value()const{assert(hasValue());

c++ - 如何对 std::shared_ptr<Widget> 对象的容器进行排序?

classWidget;std::vector>containerclassCriterium{public:booloperator()(constWidget&left,constWidget&right)const;};如何根据标准对容器进行排序,无需定义另一个标准,例如:classCriteriumForPointers{public:booloperator()(conststd::shared_ptr&left,conststd::shared_ptr&right)const;}; 最佳答案 您可以使用lambda作为适

C++:没有 <cstring> 的字符串函数

我开始学习字符串和字符串函数(从一本书中),我学习了像strcpy这样的函数和strcat和strncat..等等所以我开始在简单的程序中练习使用它们,以了解它们的作用。后来我很惊讶,在书中它告诉我必须使用#include为了使用所有这些字符串函数。我曾多次尝试使用字符串函数而不包括那为什么?我包含的唯一头文件是但是我能够使用字符串函数。请有人向我解释为什么字符串函数在没有的情况下工作我是否需要包含它才能使用字符串函数,如果不需要,的用途是什么?; 最佳答案 首先,您绝对需要考虑切换到std::string.手动内存分配虽然是一项有