小编jav*_*red的帖子

如何获得StreamWriter的完整路径

我正在创建一个StreamWriter使用相对路径.但该文件没有出现.要进行故障排除,我想检查完整路径是否是我所期望的.所以有一个StreamWriter实例,我怎样才能得到它要写入的文件的完整路径?

string fileName = "relative/path.txt"
StreamWriter sw= new StreamWriter(fileName);
// What is the full path of 'sw'?
Run Code Online (Sandbox Code Playgroud)

c# streamwriter

15
推荐指数
2
解决办法
2万
查看次数

如何创建不重复的ConcurrentQueue?

我需要一个不允许重复的concurent集合(在BlockingCollection中用作Producer/Consumer).我不需要严格的元素顺序.从另一方面,我想最小化元素"活"在集合中的最大时间.即收集不能是LIFO,理想情况下它应该是FIFO.

好吧,我会说我需要ConcurrentQueue而不允许重复,但是没有重复的ConcurrentBag也可能有效.

为什么C#不包含这样的东西,可能有人已经创建了它?

这个问题是我之前的问题的结果是什么类型的IProducerConsumerCollection <T>用于我的任务?

.net c# collections concurrency

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

要比较double和decimal,我应该将double转换为十进制或十进制来加倍?

我需要比较两个值.一个值price代表某物的当前价格,因此decimal您实际上可以按此价格买入或卖出某物.

另一个值是estimatedPrice数学计算的结果,double因为它只是estimation,你实际上不能做任何"操作"esitmatedPrice

现在我想买price < estimatedPrice.

那么我应该将价格加倍或估计价格为十进制吗?

我明白在投射后我会得到"轻微的另一个"数字,但似乎我没有其他选择.

c#

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

Windows中的JTextArea默认字体非常小

我正在使用平台外观和在Linux上我的JTextArea非常易读但在Windows上它使用"Monospaced 9"并且文本非常小.

为什么以及解决这个问题的最佳方法是什么?

为什么默认的Windows外观在JTextArea中使用这么小的字体?

java swing look-and-feel jtextarea

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

如何将字符串与枚举的每个成员相关联?

假设我有一些类似以下的枚举:

enum Towns { Rome, Napoli, Modena }
Run Code Online (Sandbox Code Playgroud)

我想为每个枚举成员关联一个字符串.理想情况下,字符串应该是描述.我想确保每个城镇都有描述:

Rome - Beautiful
Napoli - Good pizza
Modena - Ferrari store
Run Code Online (Sandbox Code Playgroud)

如果某个城镇没有描述,我还想让它给出编译时错误.

java

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

我可以在多显示器配置上使用visual studio 2012吗?

我正在尝试决定购买哪些显示器.无论如何我会买3台显示器,但我不确定我应该是23-24还是27英寸.

问题是 - 如果我可以在2台甚至3台显示器上使用VS 2012?它有多舒适?我可以使用"中央"监视器进行"编码",将左侧和/或右侧监视器用于其他所有内容吗?这样的设置有多舒适,如果可能的话?

理想情况下,我希望看到这样设置的"照片"或视频.

到目前为止,我正在使用一台27英寸的显示器,我对它非常满意.我正在考虑切换到3*24或3*27,因为没有其他程序的空间.但是只有一台24英寸的显示器对我来说太小了所以我想"花"至少2台24英寸显示器用于VS.

visual-studio visual-studio-2012

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

如何将可变数量的参数转发给另一个函数?

在我的应用程序中,我有很多日志.我确实在一个叫做的地方累积了所有日志中的所有错误errorsLogger.我用这种方式实现了它:

static Logger errorsLogger;

....

void Logger::Error(std::string format, ...) {
    va_list arglist;
    va_start(arglist, format);

    if (this != &errorsLogger) {
        errorsLogger.Error(format, arglist);      // how to forward parameters?
    }

    vfprintf(logFile, , format.c_str(), arglist);
    fprintf(logFile, "\n");

    fflush(logFile);
    va_end( arglist );
}
Run Code Online (Sandbox Code Playgroud)

但是这段代码没有按预期工作errorsLogger包含一些奇怪的字符串 - 似乎变量参数没有传递.如何修复我的代码有效?

c++

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

如果大数组比哈希映射快查找?

我从证券交易所收到"订单更新".每个订单ID介于1和100 000 000之间,因此我可以使用1亿个数组来存储1亿个订单,当收到更新时,我可以非常快速地从数组中查找订单,只需通过索引访问它arrray[orderId].我将花费几千兆字节的内存,但这没关系.

或者我可以使用hashmap,因为在任何时候"活动"命令的数量都是有限的(到,非常大致,100 000),查找也会非常快,但可能比数组慢一点.

问题是 - hashmap实际上会慢吗?是否合理地创造了1亿个阵列?

我需要延迟而没有别的,我完全不关心记忆,我应该选择什么?

algorithm

12
推荐指数
2
解决办法
1583
查看次数

如何在Linux下构建Visual Studio解决方案?

我一直在使用Windows,拥有非常有限的Linux经验.

我的Visual Studio解决方案包含5个C++项目 - 其中4个是静态库,1个是主应用程序(使用这些静态库),我想将其移动到Ubuntu.

我没有使用任何特定于Windows的代码,因此只需稍作修改,我就可以在Linux下编译.这该怎么做?我应该在Linux下使用什么软件?我应该如何处理静态库,我应该继续在Linux中使用静态库吗?如何将Visual Studio解决方案转换为类似Linux的东西?

UPD如果我只是下载Eclipse在Linux中,然后通过文件文件,项目按项目,重建和VC++到Eclipse复制的一切?这应该工作,不是吗?我只有100-200个文件,因此可以手动完成.

c++ linux static-libraries visual-c++ visual-studio-2012

11
推荐指数
2
解决办法
2万
查看次数

链接错误:模糊的libboost*.lib vs boost*.lib

我在我的项目中使用了boost.我从http://boost.teeks99.com/下载了预编译的二进制文件

链接时我收到这样的错误:

Error 18 error LNK2005: "public: void __cdecl boost::thread::join(void)" (?join@thread@boost@@QEAAXXZ) already defined in boost_thread-vc110-mt-1_52.lib(boost_thread-vc110-mt-1_52.dll) C:\Oleg\projects\MBClient\FastNativeAdapter\libboost_thread-vc110-mt-1_52.lib(thread.obj) FastNativeAdapter

为什么boost包含两个lib名字如此相似,它们之间的区别是什么?

  • libboost_thread-vc110-MT-1_52.lib
  • boost_thread-vc110-MT-1_52.lib

如何修复链接错误?

upd我自己编译了提升.我已将boost_1_53_0\stage\lib目录添加到链接器.该目录实际上包含"每个"文件的3个"副本",例如:

  • boost_atomic-vc110-MT-1_53.dll
  • boost_atomic-vc110-MT-1_53.lib
  • libboost_atomic-vc110-MT-1_53.lib

所以很清楚编译器声称的内容.不知怎的,它无法理解要使用哪个版本的lib文件.它可能与静态/ dinamic链接有关,但我仍然找不到解决方案.我确定我的问题非常普遍,所以我希望有人可以建议我该怎么做.

我试图从文件夹中删除所有"libboost*"文件,但后来我收到这样的错误: Error 15 error LNK1104: cannot open file 'libboost_date_time-vc110-mt-1_53.lib'

我试图从文件夹中删除所有"boost*lib"文件,但后来我收到了这样的错误: Error 15 error LNK1104: cannot open file 'boost_thread-vc110-mt-1_53.lib'

然后我复制boost_thread-vc110-mt-1_53.lib回来,我收到很多错误:

Error 16 error LNK2005: "public: virtual __cdecl boost::detail::thread_data_base::~thread_data_base(void)" (??1thread_data_base@detail@boost@@UEAA@XZ) already defined in boost_thread-vc110-mt-1_53.lib(boost_thread-vc110-mt-1_53.dll)

因此,当没有boost_thread-vc110-mt-1_53.lib编译器声称它丢失时,当boost_thread-vc110-mt-1_53.lib编译器声称"功能已经定义"时.Probaly以某种方式我同时使用dinamic和static链接或类似的东西?

upd2我已#define BOOST_ALL_DYN_LINK按照此处的建议取消注释,现在代码编译!我正在调查其他一切是否正常.但是我不明白为什么我应该取消 …

c++ boost

10
推荐指数
2
解决办法
9157
查看次数