我想转换一个char数组[],如:
char myarray[4] = {'-','1','2','3'}; //where the - means it is negative
Run Code Online (Sandbox Code Playgroud)
所以它应该是整数:-1234使用C中的标准库.我找不到任何优雅的方式来做到这一点.
我可以肯定附加'\ 0'.
我可以在没有打电话的情况下Start
使用秒表来获取经过的时间吗?我寻觅了很多一轮互联网,但只看到了例子,其中被称为后.这个值是在通话中填写还是总是正确的?ElapsedMilliseconds
Stop
ElapsedMilliseconds
Stop
Stop
我几乎可以肯定这应该是重复但我搜索了一段时间,但找不到答案.我应该在C#中使用,以取代C++向量和deque 有效.也就是说,我需要一种能够高效地支持直接索引的结构,并且还支持以有效的方式从一端或两端(取决于向量或双端情况)进行删除.
在java中,我通常使用ArrayList至少用于向量,但对于C#,我发现这个源表明:
ArrayList resizes dynamically. As elements are added, it grows in capacity to accommodate them. It is most often used in older C# programs.
.那么新的方法是什么?我又如何为deque案件做些什么呢?
我有一个向量,我想写它并将其读取到一个文件但是不可能使用sizeof
运算符确定向量的逻辑大小.
那我该怎么办?
我是C++ 0x的新手,我试图绕过右值引用并移动构造函数.我正在使用带有-std = c ++ 0x的g ++ 4.4.6,我对以下代码感到困惑:
class Foo
{
public:
Foo()
: p( new int(0) )
{
printf("default ctor\n");
}
Foo( int i )
: p( new int(i) )
{
printf("int ctor\n");
}
~Foo()
{
delete p;
printf("destructor\n");
}
Foo( const Foo& other )
: p( new int( other.value() ) )
{
printf("copy ctor\n");
}
Foo( Foo&& other )
: p( other.p )
{
printf("move ctor\n");
other.p = NULL;
}
int value() const
{
return *p;
}
private: …
Run Code Online (Sandbox Code Playgroud) 不久之前,2048曾经很受欢迎.每个人都玩了它,很多人发布了很好的截图和他们的成就(我自己).然后在某些时候我开始怀疑是否有可能告诉别人玩多久才能达到那个分数.我进行了基准测试,结果证明(至少在我的Android应用程序上),一秒钟内只能进行一次移动.因此,如果你玩得足够长(并且足够快)你所做的动作数量非常接近于你玩过的秒数.现在的问题是:是否可以使用2048游戏的屏幕截图来计算制作了多少动作.
这是一个示例屏幕截图(实际上我迄今为止对游戏的最大努力):
从屏幕截图中,您可以看到当前时刻的场地布局以及玩家获得的积分数.那么:这些信息是否足以计算我所做的动作数量,如果是这样,算法是做什么的呢?
注意:我想提醒您,只有当两个图块"合并"并且得分的点数是新图块的值(即要合并的图块的值的总和)时,才会对点进行评分.
如何在c ++中将字符串转换为Unsigned char ...
我有,
unsigned char m_Test[8];
Run Code Online (Sandbox Code Playgroud)
我想分配一个字符串"Hello world"
来m_Test
.
怎么做?
我试图使用__LINE__
宏来生成不同的变量名称.我有一个名为Benchmark的作用域基准测试类(位于utils命名空间中),它的构造函数接受一个字符串.这是我创建的宏定义:
#define BENCHMARK_SCOPE utils::Benchmark bm##__LINE__(std::string(__FUNCTION__))
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会导致以下错误:
<some_file_name>(59): error C2374: 'bm__LINE__' : redefinition; multiple initialization
这使我得出结论__LINE__
宏不会扩展.我根据这篇文章创建了我的超时空.你有想法为什么__LINE__
不扩大?
编辑:可能编译器信息也相关.我正在使用visual studio 2010.
我正在使用2个库.一个接受并返回std::string
s而另一个使用std::vector<unsigned char>
s.
这将是很好的,如果我可以从偷底层阵列std::string
和std::vector<unsigned char>
并能够将其移动到对方没有过多的复制.
ATM我使用的东西如下:
const unsigned char* raw_memory =
reinterpret_cast<const unsigned char*>(string_value.c_str()),
std::vector<unsigned char>(raw_memory, raw_memory + string_value.size();
Run Code Online (Sandbox Code Playgroud)
另一种方式:
std::string(
reinterpret_cast<const char*>(&vector_value[0]),
vector_value.size());
Run Code Online (Sandbox Code Playgroud)
能够定义一个以下内容会好得多:
std::string move_into(std::vector<unsigned char>&&);
std::vector<unsigned char> move_into(std::string&&);
Run Code Online (Sandbox Code Playgroud) 我试图从字符串作为输入cin
,然后每次将字符串推入向量.但是,即使我在所有输入的末尾加上'\',我的循环也不会终止.
int main(void) {
string row;
vector<string> log;
while (cin >> row) {
if (row == "\n") {
break;
}
log.push_back(row);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我尝试用(cin >> row
)替换(getline(cin,row)
),但它没有任何区别.我尝试过使用stringstream,但我真的不知道它是如何工作的.我该如何解决这个问题?