V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wevsty  ›  全部回复第 36 页 / 共 72 页
回复总数  1434
1 ... 32  33  34  35  36  37  38  39  40  41 ... 72  
很显然,我觉得楼主的需求并不需要另外找软件,Windows 自己都能干,顺便建议更换为最新版的 Windows Server,没有必要守着老系统。
Windows Server 自带远程路由服务,可以配置端口转发( Win7 的话也有办法配置的,就算麻烦点)。
SMB 协议 Windows 自带不需要另外再跑一个软件了。
owncloud 我是觉得用 SMB 服务来替代就行了,没有必要专门跑一个,如果一定要跑用 IIS 或者自己找个套件去弄都可以,跑虚拟机是没有必要的。
2017-10-29 13:22:40 +08:00
回复了 2232588429 创建的主题 问与答 hjGameUpdate.exe 是个什么流氓程序?
@cchange pchunter 有免费版的。实在不行就去安全模式或者 PE 下面分析一下。
2017-10-29 02:11:28 +08:00
回复了 2232588429 创建的主题 问与答 hjGameUpdate.exe 是个什么流氓程序?
管理员权限运行 process explorer 还查不到路径的话那肯定是有驱动保护了。
2017-10-28 23:34:44 +08:00
回复了 JohnLou 创建的主题 问与答 腾讯企业邮箱有什么国外替代方案吗?
Zoho 或者 office365
如果要付费的话 Zoho 更便宜点。
2017-10-27 15:50:13 +08:00
回复了 jgh004 创建的主题 宽带症候群 阿里香港服务器,新加坡服务器统统完蛋了.
@jgh004 我以前第一次是年付的,稳定用了一年,现在年付用完了已经改月付了,年付虽然有一点点优惠但是不确定性太大了。
2017-10-27 15:44:08 +08:00
回复了 jgh004 创建的主题 宽带症候群 阿里香港服务器,新加坡服务器统统完蛋了.
我的 SGP 已经挂了,下个月果断不续了
2017-10-26 12:49:46 +08:00
回复了 scenix 创建的主题 C C++的 set 爆内存,求助
@scenix 跑了一下 O2 优化,0.18 秒。
然而写成这样子,真的很难看,基本丧失了复用性。
2017-10-25 19:06:04 +08:00
回复了 katsusan 创建的主题 Linux Linux 下 c 程序的内存问题
@katsusan 事实是可以的。这部分所谓的只读意思是,告诉你不能修改,但是如果你硬要修改是有办法的。毕竟代码同样会被加载到内存上而内存本来就是可读写的。

一般来说,下一条指令要执行的机器码错误多半是由于跳转的地址错误,调用函数实际上要执行 call 指令,而 call 指令是要把 IP ( X86 上是 EIP )寄存器存放到栈空间里的,如果函数里面错误的修改了栈空间里 IP ( EIP )的内容,那么在函数退出的时候 ret 指令就会把错误的值还原到 IP ( EIP ),这样你就会看到下一条执行的指令不正确了。
所以一般来说类似 delete 这种函数执行的时候如果出现这样的问题,多半是因为栈空间进行了错误的写入。仔细检查是否有越界的情况产生。
2017-10-25 18:23:45 +08:00
回复了 katsusan 创建的主题 Linux Linux 下 c 程序的内存问题
这种情况一般是程序其他地方溢出覆盖了不该覆盖的地方导致的。
2017-10-25 17:33:29 +08:00
回复了 scenix 创建的主题 C C++的 set 爆内存,求助
@wevsty
更正一下,字符串分割函数的 max_split 功能一不小心写错了,不过不影响这个例子中的运行结果。
//字符串分割
std::vector<string> string_split(const string &str_data,
const string &str_separator
, string::size_type n_max_split_count = (string::size_type) - 1)
{
std::vector<string> vec_split_str;
string str_subtmp;
string::size_type n_datalen = str_data.length();
string::size_type n_separator = str_separator.length();
string::size_type n_start = 0;
string::size_type n_index = 0;
do
{
if (n_max_split_count == 0)
{
break;
}
n_max_split_count--;
n_index = str_data.find(str_separator, n_start);
if (n_index != string::npos)
{
str_subtmp = str_data.substr(n_start, n_index - n_start);
if (str_subtmp.length() != 0)
{
vec_split_str.push_back(str_subtmp);
}
n_start = n_index + n_separator;
if (n_start >= n_datalen)
{
break;
}
}
else
{
str_subtmp = str_data.substr(n_start);
if (str_subtmp.length() != 0)
{
vec_split_str.push_back(str_subtmp);
}
break;
}
} while (n_index != string::npos);
return vec_split_str;
}
2017-10-25 15:51:16 +08:00
回复了 scenix 创建的主题 C C++的 set 爆内存,求助
#include <iostream>
#include <fstream>
#include <sstream>
#include <map>
#include <set>
#include <vector>
#include <string>
#include <time.h>
#include <unordered_map>
#include <unordered_set>
using namespace std;

const string IN_FNAME = "/home/xubuntu/v2ex/test/test_py.txt";
unordered_map<string, unordered_set<string> > dict;

//字符串分割
std::vector<string> string_split(const string &str_data,
const string &str_separator
, string::size_type n_max_split_count = (string::size_type) - 1)
{
std::vector<string> vec_split_str;
string str_subtmp;
string::size_type n_datalen = str_data.length();
string::size_type n_separator = str_separator.length();
string::size_type n_start = 0;
string::size_type n_index = 0;
if (n_max_split_count == 0)
{
return vec_split_str;
}
do
{
if (n_max_split_count == 0)
{
n_max_split_count--;
break;
}
n_index = str_data.find(str_separator, n_start);
if (n_index != string::npos)
{
str_subtmp = str_data.substr(n_start, n_index - n_start);
if (str_subtmp.length() != 0)
{
vec_split_str.push_back(str_subtmp);
}
n_start = n_index + n_separator;
if (n_start >= n_datalen)
{
break;
}
}
else
{
str_subtmp = str_data.substr(n_start);
if (str_subtmp.length() != 0)
{
vec_split_str.push_back(str_subtmp);
}
break;
}
} while (n_index != string::npos);
return std::move(vec_split_str);
}

void read_message(const string& filepath)
{
fstream rin(filepath);
string buf;
string sep(" ");
std::vector<string> vec_list;
vec_list.reserve(20);
while (getline(rin, buf)) {
vec_list = string_split(buf, sep);
for (size_t i = 1; i < vec_list.size(); i++)
{
dict[vec_list[0]].insert(vec_list[i]);
}
vec_list.clear();
}
}

int main()
{
clock_t start = clock();
read_message(IN_FNAME);
clock_t end = clock();
cout << "time: " << ((double)end - (double)start) / CLOCKS_PER_SEC << " sec" << '\n';
cout << "Total Keys:" << dict.size() << '\n';
return 0;
}
2017-10-25 15:50:52 +08:00
回复了 scenix 创建的主题 C C++的 set 爆内存,求助
stringstream 的实现好像确实不是很快,所以我改了一下。
修改以后在 xubuntu 下面跑了一下,测试的数据是用图里 python 里写的 write_test_file 这个函数生成的。
[img]https://i.loli.net/2017/10/25/59f03fd257b2c.png[/img]
在 O2 优化下程序的时间是 0.267 秒,O3 优化的话和 O2 差不太多,python 下面则是 0.477 秒。
下一楼贴代码
2017-10-25 12:29:23 +08:00
回复了 scenix 创建的主题 C C++的 set 爆内存,求助
@scenix 速度的问题,上测试用例。对于测试用例 @williamscorn 的代码也未必就是速度最优的选择,剩下的具体问题具体分析。
2017-10-25 11:33:17 +08:00
回复了 scenix 创建的主题 C C++的 set 爆内存,求助
@williamscorn 按照我的理解,从楼主的意图来说,也许不应该用 std::set,而是用 std::list 或者 std::vector 更合适一些。
2017-10-25 11:24:56 +08:00
回复了 scenix 创建的主题 C C++的 set 爆内存,求助
这个 cpp 写的。。。
line.substr(start,end)这里的问题前面已经有人指出来了,end 不应该是结束为止的标号,而是复制的长度。
同理 end = line.size() - 1;一样是有问题的。
unordered_map<string, unordered_set<string>* > big_dict;
这个定义是一个 key 指向一个不会重复的 string 指针,big_dict[key]->insert(&value);实际是插入了 value 这个 string 的指针,然而 value 在循环结束的时候就因为生存周期结束而销毁了,所以你才觉得这样不会爆内存。

不要用那么多指针来掩饰,你程序里想表达的数据结构实际上就是:
unordered_map<string,unordered_set<string> >
在 map 里套 set,那么 key 至少存在 2 次,存在重复查找,重复存放一堆问题,效率能高才怪了
比如日志中某一行是
“ key value1 value2 ”那么运行完成以后数据结构实际上是
{'key':{'key':'value2'}}
而你的 python 代码对应的结果应该是
{'key':['value1','value2']}
从结果上看,不要谈效率,代码的实现完全都是不对的。
2017-10-25 10:41:16 +08:00
回复了 HunterMz 创建的主题 问与答 求助大陆和香港账户的转账问题
最好是楼主自己去开个香港银行卡,最好是和朋友同一家银行,这样朋友转给你就免费了。
如果都用工银亚洲的话,国内工行 atm 取款免费。
2017-10-24 20:00:08 +08:00
回复了 loser 创建的主题 阅读 求推荐给父母的科普书籍
中医是一个不可以证伪的东西,靠科普很难根除。
不建立科学思维,大概是很难理解这些的,与其期待改变,不如随他们去吧。
2017-10-23 21:47:55 +08:00
回复了 F2Sky 创建的主题 问与答 飞利浦的电动牙刷是不是没有原装的牙刷头了?
官方自营还不放心啥,和原装不一样就不一样呗,有些小改款也是很正常的。
1 ... 32  33  34  35  36  37  38  39  40  41 ... 72  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   986 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 22:18 · PVG 06:18 · LAX 15:18 · JFK 18:18
Developed with CodeLauncher
♥ Do have faith in what you're doing.