草庐IT

c++ - 提升 : read_until "\n" reads until ""

我正在开发一个使用boost::asio来处理以“\n”结尾的传入文本的tcp客户端。但是,当我发送包含空格的文本时,它会在第一个空格出现后丢弃所有字符。我已经确认我发送的文本是完整的。这是我的代码:boost::system::error_codeerror;boost::asio::streambufbuffer;boost::asio::read_until(*socket,buffer,"\n",error);std::istreamstr(&buffer);std::strings;str>>s; 最佳答案 使用std::

c++ - 用于从 std::map 的最后 n 个元素创建 std::vector 的惯用 C++

从std::map的最后n个元素创建std::vector的C++惯用方法是什么?我对保留vector中的顺序不感兴趣。我可以像这样复制元素:std::mapm;size_tn=3;std::vectorv;std::map::iteratorit=m.end();while(n--){//assumingm.size()>=nit--;v.push_back(it->second);}但是,有没有其他更惯用的方法来做到这一点? 最佳答案 std::copy如果您想复制类型不变,那将是合适的。然而,std::map::iterato

c++ - N Boost interval_set 的组合

我的一项服务在4个不同的位置出现中断。我正在将每个位置的中断建模到一个BoostICLinterval_set中。我想知道至少N个位置何时发生事件中断。因此,关注thisanswer,我已经实现了组合算法,因此我可以通过interval_set交集在元素之间创建组合。当这个过程结束时,我应该有一定数量的interval_set,它们中的每一个同时定义N个位置的中断,最后一步将加入它们以获得所需的全貌。问题是我目前正在调试代码,当打印每个交叉点的时间到了时,输出的文本变得疯狂(即使我正在使用gdb逐步调试),我无法看到它们,导致大量的CPU使用率。我想我以某种方式发送输出的内存比我应该的

c# - 在 C# 中列出类似于 C++ 中的 vector.reserve(n) 的内容

在System.Collections.Generic.List中添加大量元素时它运行缓慢,因为当nums增加容量时,它必须复制所有元素。在C++中,这是通过vector.reserve(n)修复的.我如何在C#中做到这一点? 最佳答案 使用Capacity属性:list.Capacity=n;或者您可以通过constructor设置初始容量:varlist=newList(n); 关于c#-在C#中列出类似于C++中的vector.reserve(n)的内容,我们在StackOverf

c++ - scanf ("%d\n"的问题,&i)

这个问题在这里已经有了答案:Whatistheeffectoftrailingwhitespaceinascanf()formatstring?(4个答案)关闭4年前。对于这段代码:inti;scanf("%d\n",&i);在我输入两个数字之前我无法停止我的程序。我觉得很奇怪,我知道当输入合适的时候,scanf会返回1。当我输入“12a'Enter'”、“12'Enter'2”等等时,没问题,i=12,似乎当我输入不同的int或输入'Enter'和其他东西时,scanf返回1。我错过了什么?

c++ - n 维 C++ 数组。这怎么可能?

当GCC允许我这样做时,我感到很困惑:intt[10][10][10][10][10];我意识到inti[N][N]是一个NxN矩阵,其中第一个N表示行,第二个表示专栏。此外,inti[N][N][N]中的第三个N表示深度,为我们提供了一个三维数组。我不明白inti[N][N][N][N]和beyond是什么意思。第四个维度是时间,但这里不适用。那么,这是否意味着当我到达第三个时,我可以让逻辑消失? 最佳答案 我发现图书馆类比对于可视化多维数组非常有用:8维数组是一个库7维数组是图书馆的一层6维数组是图书馆地板上的一个房间5维数组是

c++ - 将数字求和到 N 的最快算法

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。我想要一个真正快速的C算法或代码来完成以下任务:对任何给定整数N从1到N的所有数字求和,而不假设N为正数。我做了一个从1到N求和的循环,但是太慢了。

c++ - 为什么不允许使用 `make_unique<T[N]>`?

假设命名空间std贯穿始终。C++14委员会草案N3690定义了std::make_unique因此:[n3690:20.9.1.4]:unique_ptrcreation   [unique.ptr.create]templateunique_ptrmake_unique(Args&&...args);1Remarks:ThisfunctionshallnotparticipateinoverloadresolutionunlessTisnotanarray.2Returns:unique_ptr(newT(std::forward(args)...)).templateunique

c++ - N选K、K-N、K-2N等,递归中递归

我知道如何使用递归来生成所有可能的组合,即N选择K。但是如何创建所有可能的N/K组K?N当然总是可以被K整除。澄清一下:例如,如果N是20,K是4,那么我想生成所有可能的五组四。如果,比方说,N包含1,2,3...20而K是4,那么这样的分组是{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16},{17,18,19,20}。假设N比较小,递归可行我觉得这是一个递归中的递归问题,因为生成所有可能的单组四(又名N选择K)需要递归,然后生成下一组四变成N-4选择K,然后下一个N-8选择K,等等。但是我在实现这个时遇到了问题...有什么帮助吗?

c++ - 旋转矩阵 n 次

当我遇到这个问题时,我正在解决HackerRank上的问题。问题陈述Youaregivena2Dmatrix,a,ofdimensionMxNandapositiveintegerR.YouhavetorotatethematrixRtimesandprinttheresultantmatrix.Rotationshouldbeinanti-clockwisedirection.下图表示4x5矩阵的旋转。请注意,在一次旋转中,您只需将元素移动一步(为了更清楚,请参阅示例测试)。保证M和N的最小值是偶数。输入Firstlinecontainsthreespaceseparatedinte