我正在研究k-means ++初始化算法.算法的以下两个步骤会产生不一致的概率:
对于每个数据点x,计算D(x),x与已经选择的最近中心之间的距离.
使用加权概率分布随机选择一个新数据点作为新中心,其中选择点x的概率与D(x)^ 2成比例.
如何在C++中用这个陈述的加权概率分布进行选择?
我正在阅读以下格式的文件:
12, 10
15, 20
2, 10000
Run Code Online (Sandbox Code Playgroud)
我希望以x,y点的形式阅读这些内容.我已经开始了,但我不知道从哪里开始......这是我到目前为止所拥有的:
ifstream input("points.txt");
string line_data;
while (getline(input, line_data))
{
int d;
std::cout << line_data << std::endl;
stringstream line_stream(line_data);
while (line_stream >> d)
{
std::cout << d << std::endl;
}
}
Run Code Online (Sandbox Code Playgroud)
如何以x,y整数读取这些行中的每一行?
我正在尝试编译一些给我的代码,我被告知编译好了.也许在不同的编译器上.我正在使用VS2010,我有以下几行:
char *dot = strrchr(filename, '.');
Run Code Online (Sandbox Code Playgroud)
这会导致编译错误:
"错误C2440:'初始化':无法从'const char*'转换为'char*'
怎么会?我该如何解决?
在VS2010的右侧,通常有一组选项卡,如解决方案资源管理器和属性页选项卡.似乎缺少访问属性页面的选项卡..我怎样才能找回它?这一定很容易.
我很确定这是一些指针业务,但我已经离开了C++一段时间了.
基本上,我有一个类,有一个方法getVector()返回std::vector它已存储为类变量.
我想访问这些元素,但不是每次getVector()调用时都复制整个向量.对此有什么正确的解决方法?存储为类变量的向量本身不是指针.
我知道这很简单,所以我提前道歉.
当我试图通过索引访问向量时,我是segfaulting.例如...
vector<float> some_vec;
int i = 0;
for (some iterator loop here)
{
//snip
some_vec[i] = some_float;
i++;
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?