当在类上使用extern时,它给了我未定义的引用,但是当我创建函数时,我从该类调用"static"它工作正常.
无论如何不使用静态成员函数吗?
我的测试代码:
#include <iostream>
class MyClass
{
public:
void print() { std::clog << "print()" << std::endl; }
};
extern MyClass *g_myClass;
int main()
{
g_myClass->print();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
错误:
main.o:main.cpp:(.text+0x129): undefined reference to `_g_myClass'
Run Code Online (Sandbox Code Playgroud)
在实际代码中,我遇到了分段错误.
回溯:
Program received signal SIGSEGV, Segmentation fault.
0x00465af2 in std::_Rb_tree<Irc::Config::Config_t, std::pair<Irc::Config::Config
_t const, std::string>, std::_Select1st<std::pair<Irc::Config::Config_t const, s
td::string> >, std::less<Irc::Config::Config_t>, std::allocator<std::pair<Irc::C
onfig::Config_t const, std::string> > >::_M_begin (this=0x0)
at c:/qt/2010.04/mingw/bin/../lib/gcc/mingw32/4.4.0/include/c++/bits/stl_tre
e.h:482
482 { return static_cast<_Link_type>(this->_M_impl._M_header._M_parent
); }
(gdb) bt
#0 0x00465af2 in std::_Rb_tree<Irc::Config::Config_t, std::pair<Irc::Config::Co
nfig_t …Run Code Online (Sandbox Code Playgroud) 我想将文件(.jpg图像文件)转换为txt文件(ASCII码)
现在,我有两个计划,将文件字节转换为Hex,并转换为Base64
File file=new File("D:/temp/1.jpg");
byte[] bytes=getBytesFromFile(file);
System.out.println("bytes:"+bytes.length);//bytes:9006
String hex=HexUtil.asHex(bytes);
String base64=Base64.encode(bytes);
System.out.println("hex:"+hex.length());//hex:18012
System.out.println("base64:"+base64.length());//base64:12165
Run Code Online (Sandbox Code Playgroud)
我认为Base64更好,因为发送12165比十六进制字符串少.
我想知道,还有其他任何好主意吗?
非常感谢!:)
我想知道,如果有任何方式更改我的应用程序的日志目录,而不更改paths.php(这是蛋糕的一部分,而不是我的应用程序,在cake/config中).
我在引导程序中尝试了"App :: build(array('logs'=> array('c:'.DS.'logs')))",但我猜它只是不起作用.
谢谢!
在我们的C++项目中,我需要一些组合数据结构,我认为它应该与SQL表非常相似.我有一组具有不同数据类型的相同大小的数组(std :: vectors).例如:
time(int), X(double), Y(double), valid(boolean), number_of_measurements(int)
Run Code Online (Sandbox Code Playgroud)
让我们假装它们就像一张桌子,我需要逐行访问它们.例如,我需要一个功能,将一行插入表的任意位置,这将导致一个元素上的所有行向下移动,杀死行.我可能需要按时间对表进行排序,将其与相同类型的其他表合并.
在C++世界中有这样的东西吗?
基本上我需要一个通用的解决方案,它支持任意数量的列和行.当然,性能是有道理的,所以我更喜欢在内存中而不是在数据库中.
UPDATE
我看到很多人提议定义一个简单的行结构并将其存储在一个集合中.如果我需要经常使用列,请不要这样做.例如,我可能需要乘以整列或计算其中的平均值.我甚至可以插入它或在某个列上应用许多不同的算法.
当我将一个列提取到一个向量,在其上应用一些算法然后将它放回到一个结构时,我想避免这种情况.它看起来很难看,不是吗?
我需要或多或少类似于此:
// Initializing: (three columns: time, X, Y)
table t("time", std::vector<int>(), "X", std::vector<double>(), "Y", std::vector<double>());
// inserting a row
t.insert_row( 1, 20.0f, 20.0f );
// accessing values:
t["time"][10] = 20;
// getting a column:
std::vector<int> time = t["time"];
// sorting
t.sort_by( "time" );
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
我有一个网站有一个文本字段用于搜索,但我不希望焦点在页面加载时,但它是表格上唯一的文本输入,是否可以删除焦点?
我刚刚开始开发applet.我希望能够将(JSON)数据从javascript函数传递到我的applet中的方法.
虽然我已经搜索过,但我找不到一个合适的例子来说明如何做到这一点.有人可以显示指向如何执行此操作的资源的链接,或者在此处粘贴几行以说明如何执行此操作.
另外,我有ff问题:
为什么发明了依赖于参数的查找(ADL)?是这样我们可以写cout << stuff而不是std::operator<<(cout, stuff)?如果是这种情况,为什么ADL不限于运营商而不是所有功能?
如果C++有其他方法来执行内置和用户定义类型的通用输出,例如类型安全的printf可变参数模板,是否可以防止引入ADL ?
我正在开发一个软件,显示用户使用不同标准搜索的备件.
备件在一个表中(实际上是一个扁平的BOM结构),而库存数量在另一个表中.库存数量有点问题,因为1个备件可能有0到5个不同的位置(行),每个位置(行)可能有不同的数量.这意味着总库存数量必须来自所有不同的位置(行).
让它是关于浴室的建议是在表厨房规划建议中和库存数量stockQ.由ITEMID加入,这是两个表中的备用键.
我该如何实现这一目标?通常一个查询会产生50到500个备件.我不想一次对每个零件进行库存数量检查.
编辑:修复了错误标记,用oracle替换了mysql.
可能重复:
随机加权选择
生成具有给定(数字)分布的随机数
我有一个列表列表,其中包含一系列数字和相关概率.
prob_list = [[1, 0.5], [2, 0.25], [3, 0.05], [4, 0.01], [5, 0.09], [6, 0.1]]
Run Code Online (Sandbox Code Playgroud)
例如,prob_list[0]数字1的概率为0.5,与之相关.所以你会期望1出现50%的时间.
当我选择数字时,如何为数字增加权重?
注意:列表中的数字量可以在6到100之间变化
编辑
在列表中,我有6个数字及其相关概率.我想根据它们的概率选择两个数字.
没有数字可以选择两次.如果选择"2",则无法再次选择.
还有一个static问题.我看过以下内容:
我仍然无法理解以下行为:我有一个h文件:
// StaticTest.h
#include <stdio.h>
static int counter = 0;
struct A {
A () {
counter++;
printf("In A's ctor(%d)\n", counter);
}
~A () {
counter--;
printf("In A's dtor(%d)\n", counter);
}
};
static A a;
Run Code Online (Sandbox Code Playgroud)
还有两个cpp文件:
// StaticTest1.cpp
#include "StaticTest.h"
int main () {
return 0;
}
Run Code Online (Sandbox Code Playgroud)
和:
// StaticTest2.cpp
#include "StaticTest.h"
Run Code Online (Sandbox Code Playgroud)
该计划的输出是:
In A's ctor(1)
In A's ctor(2)
In A's dtor(1)
In A's dtor(0)
Run Code Online (Sandbox Code Playgroud)
现在,A构造函数被调用两次,因为h文件被包含两次,并且因为声明了 …