根据Scott Meyers的说法,在他的Effective STL书中 - 第46项.他声称这std::sort
比std::qsort
内联的事实要快670%.我测试了自己,我看到qsort更快:(!有谁可以帮我解释这个奇怪的行为?
#include <iostream>
#include <vector>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <cstdio>
const size_t LARGE_SIZE = 100000;
struct rnd {
int operator()() {
return rand() % LARGE_SIZE;
}
};
int comp( const void* a, const void* b ) {
return ( *( int* )a - *( int* )b );
}
int main() {
int ary[LARGE_SIZE];
int ary_copy[LARGE_SIZE];
// generate random data
std::generate( ary, ary + LARGE_SIZE, rnd() );
std::copy( ary, ary …
Run Code Online (Sandbox Code Playgroud) 我习惯在Ubuntu之前从源代码手动安装GCC,这是一个痛苦的过程.所以我真的不想重复这个过程.目前,我的机器上安装了MinGW和GCC(4.6.2).那么有没有一种简单的方法来更新GCC而不是完全从源代码构建它?有人做过之前可以分享一些提示吗?
我在网上检查了几个Ruby教程,他们似乎都在使用数组.那么如何在Ruby中实现以下数据结构呢?
我遇到了一个问题,我需要访问一个类的私有字段.例如:
class MyClass
{
private string someString;
public MyClass( string someStringValue )
{
someString = someStringValue;
}
}
Run Code Online (Sandbox Code Playgroud)
如何在MyClass之外获取someString的值?
对不起,我不能在这里使用属性,因为实际的生产代码是受保护的.我是一名质量保证/开发人员,我需要一种方法让那些私人用于编写用户验收测试.所以我无法改变生产代码.你能帮我吗?
#include <iostream>
#include <fstream>
int main() {
std::fstream inf( "ex.txt", std::ios::in );
while( !inf.eof() ) {
std::cout << inf.get() << "\n";
}
inf.close();
inf.clear();
inf.open( "ex.txt", std::ios::in );
char c;
while( inf >> c ) {
std::cout << c << "\n";
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我真的很困惑eof()
功能.假设我的ex.txt的内容是:
abc
Run Code Online (Sandbox Code Playgroud)
它总是读取一个额外的字符,并-1
在阅读时显示eof()
.但是inf >> c
给出了'abc'的正确输出?任何人都可以帮我解释一下吗?
我想知道在C++中我们应该在functor中使用lambda表达式.对我来说,这两种技术基本相同,甚至算法也比lambda更优雅,更清洁.例如,如果我想重用我的谓词,我必须一遍又一遍地复制lambda部分.所以lambda什么时候真正进入?
以下技巧istringstream
用于分割带有空格的字符串.
int main() {
string sentence("Cpp is fun");
istringstream in(sentence);
vector<string> vec = vector<string>(istream_iterator<string>(in), istream_iterator<string>());
return 0;
}
Run Code Online (Sandbox Code Playgroud)
是否有类似的技巧来分割带any
分隔符的字符串?例如,|
在"Cpp | is | fun"中.
我最初认为他们都是一样的,但事实证明是错的.那么有人可以简单地解释这三者之间的差异吗?例如:
std::bind
(最新一代,下一代C++)std::tr1::bind
(旧的,C++ std的扩展)boost::bind
(完全独立的图书馆)或者std::shared_ptr
,std::tr1::shared_ptr
和boost::shared_ptr
,...等
更新
bind
,shared_ptr
是有助于澄清我的问题的例子.我的目的是了解这三个命名空间之间的一般差异.所有三个名称空间中都有几个库,显然bind
是一个例子,以及shared_ptr
.
我应该坚持哪些名称空间?我个人更喜欢库,std::
因为它将成为C++的下一个标准(C++ 0x).
Android示例中的"Login"实现AsyncTask
为非静态内部类.然而,根据Commonsguys,这个类应该是静态的,并使用弱参考外部活动看到这个.
那么实施的正确方法是AsyncTask
什么?静态还是非静态?
Commonsguy Implementation
https://github.com/commonsguy/cw-android/tree/master/Rotation/RotationAsync/
从Google登录示例
package com.example.asynctaskdemo;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.annotation.TargetApi;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.TextView;
/**
* Activity which displays a login screen to the user, offering registration as
* well.
*/
public class LoginActivity extends Activity {
/**
* A dummy authentication store containing known user names and passwords.
* TODO: remove …
Run Code Online (Sandbox Code Playgroud)