小编rah*_*man的帖子

如何修改boost多索引的只读元素?

我刚刚注意到我无法在boost多索引容器元素中进行更改.这是真的?(基于以下简化代码)查看"更新"功能:

#include <boost/multi_index_container.hpp>
#include <boost/multi_index/ordered_index.hpp>
#include <boost/multi_index/random_access_index.hpp>
#include <boost/multi_index/identity.hpp>
#include <boost/multi_index/member.hpp>
namespace sim_mob
{
enum TrafficColor
{
    Red =1,             ///< Stop, do not go beyond the stop line.
    Amber = 2,          ///< Slow-down, prepare to stop before the stop line.
    Green = 3,          ///< Proceed either in the forward, left, or right direction.
    FlashingRed = 4,    ///future use
    FlashingAmber = 5,  ///future use
    FlashingGreen = 6   ///future use
};
//Forward declarations
class Link
{
public:
    int aa;
};

//////////////some bundling …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-multi-index

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

如何解析自定义格式的文件R

这是一个刚开始R工作的不耐烦的人提出的问题。我有一个包含这样的行的文件:

simulation_time:386300;real_time:365;agents:300

simulation_time:386800;real_time:368;agents:300

simulation_time:386900;real_time:383;agents:300

simulation_time:387000;real_time:451;agents:300

simulation_time:387100;real_time:345;agents:300

simulation_time:387200;real_time:327;agents:300

simulation_time:387300;real_time:411;agents:300

simulation_time:387400;real_time:405;agents:300

simulation_time:387500;real_time:476;agents:300

simulation_time:387600;real_time:349;agents:300 

....
Run Code Online (Sandbox Code Playgroud)

需要从文件中绘制图表。此链接教授如何通过读取表格格式的文件来绘制文件。但上面的行不是表格或整齐的 csv 格式。

您能告诉我如何解析这样的文件吗?

另外,如果你对像我这样急躁的人有参考,请告诉我。

谢谢

parsing r graph

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

使用CMake创建包含文件

我有一个包含hpp和cpp文件的文件夹.我需要创建一个包含所述文件夹中所有hpp文件的头文件:

#pragma once
#include "test_1.hpp"
#include "test_2.hpp"
#include "test_3.hpp"
Run Code Online (Sandbox Code Playgroud)

CMake能做到吗?

注意:我不会把"我的"研究工作放在你的肩上.我只需要知道这样的事情是否可能,并且可能是我可以阅读的链接.我最初的谷歌搜索没有显示任何有用的东西.谢谢

c++ cmake

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

C++私有构造函数(带参数)不允许实例化

我的私有构造函数中有一个问题,如下所示:

Lane.hpp:

namespace sim_mob
{
class B
{

    friend class A;

private:
    B(int){}

};
}
Run Code Online (Sandbox Code Playgroud)

xmll.hpp:

#include"Lane.hpp"
namespace geo
{
class A
{
public:
    A()
    {
        sim_mob::B b(2);
     }
};
}
Run Code Online (Sandbox Code Playgroud)

main.cpp中:

#include"xmll.hpp"



int main()
{
    geo::A a;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

命令:$ g ++ main.cpp

In file included from main.cpp:2:0:
Lane.hpp: In constructor ‘geo::A::A()’:
Lane.hpp:10:5: error: ‘sim_mob::B::B(int)’ is private
xmll.hpp:9:23: error: within this context
Run Code Online (Sandbox Code Playgroud)

关键是如果构造函数中没有任何参数,我就不会收到此错误.我可以知道为什么我会得到这个以及如何解决它?非常感谢

c++ constructor private friend

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

Eclipse Kepler 64位未在Windows 7上运行

我在linux中使用eclipse没有问题.但是试图在Windows 7上运行它,我遇到了许多人似乎已经面临的普遍问题.我尝试了所有的解决方案,但没有一个适合我,我得到了这个:

在此输入图像描述

我目前的eclipse.ini看起来像这样:

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20121114-150939.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20121107-162306
-product
org.eclipse.epp.package.cpp.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vm
C:\Program Files (x86)\Java\jre7\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.7
-Dhelp.lucene.tokenizer=standard
-Xms40m
-Xmx512m
Run Code Online (Sandbox Code Playgroud)

-Windows 7和eclipse都是64位的.
-java自动从java.com安装在C:\ Program Files(x86)\ Java\jre7(旧版本已经卸载),版本匹配,以及环境变量中的路径设置:

C:\ Program Files\Common Files\Microsoft Shared\Windows Live; C:\ Program Files(x86)\ Common Files\Microsoft Shared\Windows Live;%SystemRoot%\ system32;%SystemRoot%;%SystemRoot%\ System32\Wbem ;%SYSTEMROOT%\ System32\WindowsPowerShell\v1.0 \; C:\ Program Files\ThinkPad\Bluetooth Software \; C:\ Program Files\ThinkPad\Bluetooth Software\syswow64; C:\ Program Files\Broadcom\WHL \; C:\ Program Files\Broadcom\WHL\syswow64; C:\ Program Files\Broadcom\WHL\SysWow64 \; C:\ Program Files\Broadcom\WHL\SysWow64\syswow64; C:\ Program Files\Intel\WiFi\bin \; …

java eclipse

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

当类用作映射值时,复制构造函数不起作用

我找不到一种更简单的方法来解释我的问题,而不是直接粘贴它(虽然简化版本).我有一个带有必要的赋值运算符,默认构造函数和common复制构造函数的模板类.当我尝试在我的代码中使用此类时,我收到如下错误:

#include<map>
#include<vector>

template<class T>
class BufferContainer
{
public:

    BufferContainer& operator=(BufferContainer& other)
    {
        buffer = other.get();
        return *this;
    }

    BufferContainer( const BufferContainer& other ) :
        buffer( other.get() )
     {
     }

    BufferContainer(){
    }

    std::vector<T>& get() {
            return buffer;
    }

    void add(T value) {

        buffer.push_back(value);
    }

    std::vector<T> buffer;
};

int main()
{
    std::map<int, BufferContainer<int> > myMap;
    myMap[1].add(1);
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

而错误是:

Practice $ g++ template.cpp 
template.cpp: In instantiation of ‘BufferContainer<T>::BufferContainer(const BufferContainer<T>&) [with T = int; BufferContainer<T> = BufferContainer<int>]’:
/usr/include/c++/4.7/bits/stl_pair.h:105:31:   required …
Run Code Online (Sandbox Code Playgroud)

c++

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

是否允许将*this作为接受引用(&)的函数的参数传递?

我一直在使用这种方法没有任何问题,但我想确定这是一个完全允许的方法还是我只是幸运!

class A
{
public:
    void bar()
    {
        foo(*this);
    }
};

void foo(A &a)
{

}
Run Code Online (Sandbox Code Playgroud)

谢谢

c++

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

插入std :: map的最佳方法

有:

std::map<const std::string,A > cache;
Run Code Online (Sandbox Code Playgroud)

你将如何插入这个容器(可以重复尝试):

cache.insert(std::make_pair(id,ps));

cache.insert(std::pair<std::string,A>(id,ps));

if(cache.find(id) == cache.end()){
 cache[id] = ps;
}
Run Code Online (Sandbox Code Playgroud)

为什么??(在时间和记忆方面)

你有更好的解决方案吗?

更新:我没有使用C++ 11

Update-2: 好的,到目前为止我们意识到:

make_pair并且pair<>是类似的.

insert[ ](有或没有if检查)都会调用copy.那么......之间的竞争是:

  1. insert
  2. [ ](带if检查)
  3. [ ](带if检查和交换)

你更喜欢哪一个?

再次感谢

c++ stl stdmap c++03

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

boost ssl连接过程失败

我正在尝试将著名的boost ssl客户端/服务器连接示例合并到一个程序中。供您参考,基类如下:

#include <cstdlib>
#include <iostream>
#include <boost/bind.hpp>
#include <boost/asio.hpp>
#include <boost/asio/ssl.hpp>

namespace bt
{
//
// client.cpp
// ~~~~~~~~~~
//
// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//


enum { max_length = 1024 };

class client
{
public:
  client(boost::asio::io_service& io_service, boost::asio::ssl::context& context,
      boost::asio::ip::tcp::resolver::iterator endpoint_iterator)
    : socket_(io_service, context)
  {
    boost::asio::ip::tcp::endpoint endpoint = *endpoint_iterator;
    socket_.lowest_layer().async_connect(endpoint, …
Run Code Online (Sandbox Code Playgroud)

c++ ssl boost boost-asio

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

另一个"无效初始化类型的引用"错误

我的课堂上有这样的容器:

protected:
std::map<const AAA*, std::set<BBB*> > conn;
Run Code Online (Sandbox Code Playgroud)

以下两个getter函数都可以正常工作:

std::map<const AAA*, std::set<BBB*> > & getConnectors()       {return connectors;}
std::map<const AAA*, std::set<BBB*> >   getConnectors() const {return connectors;}
Run Code Online (Sandbox Code Playgroud)

但是&和const一起,Nope.Gives错误:

std::map<const AAA*, std::set<BBB*> > & getConnectors() const {return connectors;} //error
Run Code Online (Sandbox Code Playgroud)

错误是:

/home.../Multi.hpp:65:108: error: invalid initialization of reference of type ‘std::map<const AAA*, std::set<BBB*> >&’ from expression of type ‘const std::map<const AAA*, std::set<BBB*> >’
make[2]: *** [CMakeFiles/SimMobility.dir/main.cpp.o] Error 1
Run Code Online (Sandbox Code Playgroud)

为什么我得到这个,请问我怎么解决呢

谢谢

c++ const reference

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

错误:没有匹配的呼叫功能

任何人都可以帮我解决这个问题.我有一个类Comm,Info它在其地图容器中存储另一个类的元素:

    #include<map>
using namespace std;
class En
{

};

class Info
{
public:
    const En * en;
    bool read;
    bool write;
    bool done;
    Info(
            En * en_,
            bool read_,
            bool write_,
            bool done_
            )
    :
        en(en_),
        read(read_),
        write(write_),
        done(done_)
    {}

    Info(const Info& info_)
    :
        en(info_.en),
        read(info_.read),
        write(info_.write),
        done(info_.done)
    {}


};

class Comm
{
    std::map<const En*,Info> subscriptionList;
public:
void  subscribeEn(Info value)
{
    //none of the below works
//  subscriptionList[value.en] = Info(value);
    subscriptionList[value.en] = value;
}
};


int …
Run Code Online (Sandbox Code Playgroud)

c++

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

如何根据模板参数从不同的命名空间中选择相似的函数

标题和代码是不言自明的,

这样的事情可能吗?怎么样?

是鼓励吗?如果没有,有什么替代方案?谢谢

#include <iostream>
using namespace std;
namespace A
{
 void foo()
 {
   cout << "In A\n";
 }
}

namespace B
{
 void foo()
 {
  cout << "In B\n";
 }
}


template <typename X>
struct Foo {
    void foo()
    {
     X::foo();
    }
};


int main()
{

  Foo<A> _foo;
  _foo.foo();
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++

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

标签 统计

c++ ×10

boost ×2

boost-asio ×1

boost-multi-index ×1

c++03 ×1

cmake ×1

const ×1

constructor ×1

eclipse ×1

friend ×1

graph ×1

java ×1

parsing ×1

private ×1

r ×1

reference ×1

ssl ×1

stdmap ×1

stl ×1