小编seh*_*ehe的帖子

替换特定字母的函数不会以void返回类型运行

我必须创建一个程序,用第二个参数替换第一个参数中的所有字母.例如,如果传递的字符串是"How now cow"并且函数将所有'o'替换为'e',那么新字符串将是:"Hew new cew."...我在第9行继续收到错误,返回无效部分.

#include <iostream>
using namespace std;

string replace(string mystring){
    replace(mystring.begin(), mystring.end(),  'e',  'o');
    return void;
}
Run Code Online (Sandbox Code Playgroud)

c++ codeblocks

1
推荐指数
2
解决办法
219
查看次数

命令模式下的缩进宽度

我在Windows 7上使用Vim 7.3并在我的vimrc中进行以下设置:

set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
Run Code Online (Sandbox Code Playgroud)

如果我在'插入模式'中使用Tab或在'命令模式'中使用>>,我的文本缩进4个空格.但是如果我在'冒号命令模式'中使用>>(我不知道它是否真的被称为),例如使用范围

:30,35>> 
Run Code Online (Sandbox Code Playgroud)

文本仍然缩进8个空格.

将此更改为4个空格的正确设置是什么?

vim

1
推荐指数
1
解决办法
145
查看次数

非英语文本python不可读

我正在编写一个爬虫并获取非英语网站的标题.当我在我的控制台中打印标题时,得到这样的结果:

শà§à¦°à§à¦²à¦à§à¦à¦¾à¦° ভালৠসà§à¦à¦¨à¦¾
ফà¦à¦¿à¦°à¦¾à¦ªà§à¦²à§ হাতবà§à¦®à¦¾ বিসà§à¦«à§à¦°à¦£, à¦à¦à¦ ১৬
দà§à¦ বাà¦à¦²à¦¾à¦¦à§à¦¶à¦¿à¦à§ নিà§à§ à¦à§à¦à§ বিà¦à¦¸à¦à¦«
à¦à¦¾à¦®à¦¾à§à¦¾à¦¤ নà§à¦¤à¦¾ সà§à¦²à¦¿à¦®à¦¸à¦¹ দà§à¦à¦¨ à¦à§à¦°à§à¦ªà§à¦¤à¦¾à¦°
Run Code Online (Sandbox Code Playgroud)

我不知道如何从上面的字符串中获取正确的文本.

任何的想法?

提前致谢.

python unicode encoding http

1
推荐指数
1
解决办法
201
查看次数

boost/rapidxml解析崩溃

我们在pub/sub代理实现中使用boost/rapidxml进行XML解析,对于某个XML有效负载,代理崩溃了.

为了消除尽可能多的变量,我实现了一个只执行XML解析的简短测试程序,崩溃类似.

我的简短测试程序在这里找到:

#include <stdio.h>       // printf
#include <unistd.h>      // read
#include <sys/types.h>   // open
#include <sys/stat.h>    // open
#include <fcntl.h>       // open
#include <errno.h>       // errno
#include <string.h>      // strerror
#include "rapidxml.hpp"
#ifdef LONG_RAPIDXML_NAME_SPACE
// boost version >= 1.45
using namespace boost::property_tree::detail::rapidxml;
#else
// boost version <= 1.44
using namespace rapidxml;
#endif
/* ****************************************************************************
*
* xmlTreePresent -
*/
static void xmlTreePresent(xml_node<>* nodeP, std::string indent, int depth = 0)
{
    static int callNo = 0;
    ++callNo;
    if(nodeP == NULL) …
Run Code Online (Sandbox Code Playgroud)

c++ boost rapidxml

1
推荐指数
1
解决办法
1013
查看次数

Safely disconnecting from boost::signals2

With boost signals (which is now deprecated) I always wrapped connection management and signal invocation with a mutex in order to be thread-safe. Boost signals 2 should give that out-of-the-box. But:

According to the Boost Signals2 Thread-Safety documentation, it is possible to disconnect slots from thread A while they are executing on thread B. Let's assume I created an object O on thread A and connected a member function of O to a signal S that is executed on worker …

c++ multithreading boost boost-signals2

1
推荐指数
1
解决办法
4214
查看次数

Haskell语法错误:意外`;' 可能是由于布局不好

很长一段时间以来,我一直在第四行收到此错误:声明中的语法错误(意外的`;',可能是由于布局错误)在下面的代码片段中:

import Data.Maybe    

leesIngrediënten:: Int->[[Char]]->[Int]->[Maybe [Char]]->[[Char]]->([Int], [Maybe [Char]], [[Char]])
leesIngrediënten 0 _ hoevs eenhs naams = (hoevs, eenhs, naams)
leesIngrediënten n (line:lines) hoevs eenhs naams =
                 let 
                     (hoev, eenh, naam) = leesLijn line
                     in  
                       leesIngrediënten (n-1) lines (hoev:hoevs) (eenh:eenhs) (naam:naams)
Run Code Online (Sandbox Code Playgroud)

在互联网上搜索后,我发现错误意味着什么,但重点是我没有看到我的错误.(可能是因为我写了代码)

奇怪的是,Hugs是抱怨GHCi没有什么可抱怨的人.

提前致谢!

syntax haskell ghci hugs

1
推荐指数
1
解决办法
477
查看次数

Boost无向图合并顶点

我正在使用 Boost C++ 库来构建一个邻接表来表示一个无向图。图上的每条边都与各自的权重相关联,我想检查权重是否大于某个阈值,而不是将两个顶点合并在一起。

我如何合并:

  • 对于要合并的顶点,收集进出该顶点的所有边并将这些边指向新顶点
  • 清除合并顶点
  • 移除顶点

我的问题: 我使用一个简单的程序首先构造算法,然后再将其用于目的。在这个程序中,我使用简单的家谱方法来执行上述步骤。当我使用函数remove_vertex(vertex, Graph)删除顶点时, 出现分段错误。

  • 我无法弄清楚一旦顶点被移除,图形是否会自动更新其结构?

我的 C++ 代码如下:

#include <boost/graph/adjacency_list.hpp>
#include <boost/tuple/tuple.hpp>
#include <boost/config.hpp>
#include <iostream>
#include <vector>
#include <string>

using namespace std;

typedef boost::property<boost::vertex_index_t, int> vertex_property;
typedef boost::property<boost::edge_weight_t, float> edge_property;
typedef typename boost::adjacency_list <boost::vecS,
                                    boost::vecS,
                                    boost::undirectedS,
                                    vertex_property,
                                    edge_property> Graph;
void boostSampleGraph() {

enum family {
  Jeanie, Debbie, Rick, John, Amanda, Margaret, Benjamin, N };
const char *name[] = { "Jeanie", "Debbie", "Rick", "John", "Amanda",
                       "Margaret", "Benjamin", "N"
 }; …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm boost graph boost-graph

1
推荐指数
1
解决办法
1465
查看次数

无法反序列化 boost graph 对象

我正在使用 boost 图形库。我需要序列化一个 \ngraph 对象并稍后将其读出。但我发现我的\n程序无法与 XML 归档器一起正常工作。它总是抛出异常:

\n\n
\n

XML 开始/结束标记\n 不匹配 - 位置。

\n
\n\n

我没有"position"在序列化代码中定义名为 \n 的标签。我不知道如何解决它。这是问题的演示。

\n\n

类型.h

\n\n
#ifndef TYPES_H\n#define TYPES_H\n\n#include <boost/graph/graph_traits.hpp>\n#include <boost/graph/adjacency_list.hpp>\n#include <boost/graph/adj_list_serialize.hpp>\n#include <boost/graph/filtered_graph.hpp>\n#include <boost/multi_index_container.hpp>\n#include <boost/multi_index/ordered_index.hpp>\n#include <boost/multi_index/identity.hpp>\n#include <boost/multi_index/member.hpp>\n#include <boost/multi_index/composite_key.hpp>\n#include <boost/serialization/map.hpp>\n#include <boost/serialization/deque.hpp>\n#include <boost/serialization/variant.hpp>\n#include <boost/variant.hpp>\n#include <boost/ref.hpp>\n\nusing namespace boost;\nnamespace bmi = boost::multi_index;\n\nclass QTable; //forward declaration\ntypedef QTable Eligibility;\n\n//\xc3\xa8\xc2\xa7\xe2\x80\x9a\xc3\xa6\xc2\xb5\xe2\x80\xb9\xc3\xa7\xc2\xb1\xc2\xbb\xc3\xa5\xc5\xbe\xe2\x80\xb9\nenum Observation{present,absent,idle};\n\n//1\xc3\xaf\xc2\xbc\xe2\x80\xb0\xc3\xa5\xe2\x80\xba\xc2\xbe\xc3\xa6\xc2\xa8\xc2\xa1\xc3\xa5\xc5\xbe\xe2\x80\xb9\xc3\xa7\xc5\xa1\xe2\x80\x9e\xc3\xa5\xc2\xae\xc5\xa1\xc3\xa4\xc2\xb9\xe2\x80\xb0\nenum vertex_BatteryLevel_t {vertex_BatteryLevel};\nenum vertex_ObservationHistory_t {vertex_ObservationHistory};\nenum edge_QFunction_t {edge_QFunction};\nenum edge_Eligibility_t {edge_Eligibility};\n\nnamespace boost {\n    BOOST_INSTALL_PROPERTY(vertex,BatteryLevel);\n    BOOST_INSTALL_PROPERTY(vertex,ObservationHistory);\n    BOOST_INSTALL_PROPERTY(edge,QFunction);\n    BOOST_INSTALL_PROPERTY(edge,Eligibility);\n}\n\ntypedef property<vertex_BatteryLevel_t,int,\n    property<vertex_ObservationHistory_t,std::deque<Observation>,\n        property<vertex_index_t,int>\n    > \n> vertex_state;\ntypedef property<edge_QFunction_t,QTable,\n    property<edge_Eligibility_t,Eligibility>\n> edge_qfunction;\ntypedef adjacency_list<\n    vecS,setS,directedS, //\xc3\xa7\xc2\xbb\xe2\x80\x9c\xc3\xa7\xe2\x80\x9a\xc2\xb9\xc3\xa7\xe2\x80\x9d\xc2\xa8vecS\xc3\xa5\xe2\x80\xba\xc2\xa0\xc3\xa4\xc2\xb8\xc2\xba\xc3\xa6\xe2\x80\x94\xc2\xa0\xc3\xa9\xc5\x93\xe2\x82\xac\xc3\xa5\xc5\xa0\xc2\xa8\xc3\xa6\xe2\x82\xac\xc3\xa6\xe2\x80\x9d\xc2\xb9\xc3\xa5\xcb\x9c\xc3\xa7\xc2\xbb\xe2\x80\x9c\xc3\xa7\xe2\x80\x9a\xc2\xb9\xc3\xa4\xc2\xb8\xc2\xaa\xc3\xa6\xe2\x80\xa2\xc2\xb0\xc3\xaf\xc2\xbc\xc5\x92\xc3\xa7\xe2\x80\x9d\xc2\xa8setS\xc3\xa8\xc2\xa1\xc2\xa8\xc3\xa7\xc2\xa4\xc2\xba\xc3\xa8\xc2\xbe\xc2\xb9\xc3\xa4\xc2\xb8\xc2\xba\xc3\xa4\xc2\xba\xe2\x80\xa0\xc3\xa5\xc2\xbc\xc2\xba\xc3\xa8\xc2\xb0\xc6\x92\xc3\xa6\xcb\x9c\xc2\xaf\xc3\xa7\xc2\xae\xe2\x82\xac\xc3\xa5\xe2\x80\xa2\xc3\xa5\xe2\x80\xba\xc2\xbe\xc3\xaf\xc2\xbc\xcb\x86\xc3\xa4\xc2\xb8\xc2\xa4\xc3\xa4\xc2\xb8\xc2\xaa\xc3\xa7\xc2\xbb\xe2\x80\x9c\xc3\xa7\xe2\x80\x9a\xc2\xb9\xc3\xa4\xc2\xb9\xe2\x80\xb9\xc3\xa9\xe2\x80\x94\xc2\xb4\xc3\xa4\xc2\xb8\xe2\x82\xac\xc3\xa4\xc2\xb8\xc2\xaa\xc3\xa6\xe2\x80\x93\xc2\xb9\xc3\xa5\xe2\x80\x98\xc3\xa7\xc5\xa1\xe2\x80\x9e\xc3\xa8\xc2\xbe\xc2\xb9\xc3\xa5\xc2\xaa\xc3\xa8\xc6\x92\xc2\xbd\xc3\xa6\xc5\x93\xe2\x80\xb0\xc3\xa4\xc2\xb8\xe2\x82\xac\xc3\xa6\xc2\xa1\xc3\xaf\xc2\xbc\xe2\x80\xb0\n    vertex_state, //\xc3\xa8\xc5\xa0\xe2\x80\x9a\xc3\xa7\xe2\x80\x9a\xc2\xb9\xc3\xa7\xc5\xa1\xe2\x80\x9e\xc3\xa7\xe2\x80\x9d\xc2\xb5\xc3\xa9\xe2\x80\xa1\xc3\xa5\xe2\x80\x99\xc5\x92\xc3\xa8\xc2\xa7\xe2\x80\x9a\xc3\xa6\xc2\xb5\xe2\x80\xb9\xc3\xa5\xc5\xbd\xe2\x80\xa0\xc3\xa5\xc2\xb2\n …
Run Code Online (Sandbox Code Playgroud)

c++ boost

1
推荐指数
1
解决办法
204
查看次数

Boost.Spirit - 如何使用重复解析为结构?

我正在尝试制作一个小程序来使用 Boost.Spirit 从 /proc/stat 解析 cpu 使用信息。它主要是有效的,但是在使用重复时我无法编译我的语法。我错过了什么?

整个代码:

#include <vector>

#include "boost/fusion/include/adapt_struct.hpp"
#define BOOST_SPIRIT_DEBUG
#include "boost/spirit/include/qi.hpp"
#include "boost/iostreams/device/mapped_file.hpp"

namespace qi = boost::spirit::qi;
namespace ascii = boost::spirit::ascii;

struct Cpu
{
   unsigned int user;
   unsigned int nice;
   unsigned int system;
   unsigned int idle;
   unsigned int iowait;
   unsigned int irq;
   unsigned int softirq;
   unsigned int steal;
   unsigned int guest;
   unsigned int guest_nice;
};

BOOST_FUSION_ADAPT_STRUCT(
   Cpu,
   (unsigned int, user)
   (unsigned int, nice)
   (unsigned int, system)
   (unsigned int, idle)
   (unsigned int, iowait)
   (unsigned int, irq) …
Run Code Online (Sandbox Code Playgroud)

c++ parsing boost boost-spirit-qi

1
推荐指数
1
解决办法
283
查看次数

boost :: circular_buffer如何处理覆盖移位

我有2个进程:一个生产者和"消费者",它仍然将值保留在缓冲区中,它们将被覆盖.

但让消费者跟踪是一个问题.当缓冲区已满并且值被覆盖时,指向索引0的值是刚刚覆盖的值之前的值(即下一个最旧的值),刚刚插入的值是最后一个索引,移动所有值之间.

cb.push_back(0)
cb.push_back(1)
cb.push_back(2)

consumer reads to cb[1], cb[2] should == 2 when next read

cb.push_back(3)

cb[2] now == 1 effectively reading the old value
Run Code Online (Sandbox Code Playgroud)

有趣的是在循环缓冲区迭代器也保持相同的值,即使在缓冲开始被改写,并除非阅读当你达到这样的工作好吗end()迭代器,它会永远等于end()甚至将更多的值之后迭代器,所以那么你必须std::prev(iter, 1)经过你已经完成了消费,然后当你插入更多的值后再次阅读,std::next(iter, 1)这样你就不会读取你已经读过的值.

c++ boost circular-buffer boost-interprocess

1
推荐指数
1
解决办法
716
查看次数