我想列出C++目录中的文件夹,理想情况是在便携式(以主要操作系统工作)方式.我尝试使用POSIX,它工作正常,但我怎样才能确定找到的项目是否是文件夹?
我可以想象以下代码:
template <typename T> class X
{
public:
T container;
void foo()
{
if(is_vector(T))
container.push_back(Z);
else
container.insert(Z);
}
}
// somewhere else...
X<std::vector<sth>> abc;
abc.foo();
Run Code Online (Sandbox Code Playgroud)
如何编写,成功编译?我知道类型特征,但是当我定义时:
template<typename T> struct is_vector : public std::false_type {};
template<typename T, typename A>
struct is_vector<std::vector<T, A>> : public std::true_type {};
Run Code Online (Sandbox Code Playgroud)
它不编译:
error: no matching function for call to 'std::vector<sth>::insert(Z)'
Run Code Online (Sandbox Code Playgroud)
static_assert也不是我想要的.有什么建议吗?
这是我想要实现的一个简短例子(SSCCE):http://ideone.com/D3vBph
当用户打印某个网页时,我想将一些信息发送回我的数据库.我可以在IE中使用onbeforeprint()和onafterprint()我这样做,但我想以浏览器不可知的方式做同样的事情.只要它完成,就不关心我必须使用哪种技术组合(PHP,MySQL,JavaScript,HTML).有任何想法吗?
编辑:
还有一些问题.我尝试将我的功能放在我Print.css的图像中,但我正在弄乱它的一些方法.然后我尝试添加一个事件监听器,但我也无法让它正常工作.如果有人能提供一些关于如何在任何浏览器中打印前调用函数的更多细节,我将不胜感激.
编辑:
我现在正在放弃这个,我已经采取了另一种做我想做的方式.我期待着FireFox支持onbeforeprint()和onafterprint()的那一天.
是否可以在SWT中创建可聚焦的复合材料?我通过显示过滤器捕获所有键盘事件,但是当焦点在树或列表上时存在一些问题 - GTK +的默认操作是搜索控件的内容.
我想要做的是将SWT和AWT与可聚焦的AWT组件混合使用.我设法使AWT小部件无法对焦,我添加了显示过滤器以使AWT组件接收键盘事件(但不是直接),即使它没有聚焦.但是当一些SWT控件聚焦时有几个问题 - 这就是为什么我想让复合可聚焦.
所以我的最后一个问题是:是否有可能使SWT复合材料具有可调性?
我正在阅读Flask关于测试的教程.那里有这样的代码:
rv = self.app.get('/')
assert 'No entries here so far' in rv.data
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么有变量叫rv?这个缩写是什么意思?
我一直在Flask源代码中寻找它,我找到了几种变量:
app_rv = app(environ, start_response)
Run Code Online (Sandbox Code Playgroud)
和
rv = run_wsgi_app(self.application, environ, buffered=buffered)
Run Code Online (Sandbox Code Playgroud)
但是,正如您所看到的,rv这里甚至可能与rv测试中的响应对象无关.
我已经能够发现"r"可能仍然用于"响应",但"v"是什么意思?
我需要一个快速的内存转置算法,用于C/C++中的高斯卷积函数.我现在做的是
convolute_1D
transpose
convolute_1D
transpose
Run Code Online (Sandbox Code Playgroud)
事实证明,使用这种方法,滤波器的大小必须很大(或大于我的预期),或者转置需要比卷积更长的时间(例如,对于1920x1080矩阵,卷积与转置的时间相同,滤波器大小为35 ).我正在使用的当前转置算法使用循环阻塞/平铺以及SSE和OpenMP.我尝试过使用AVX的版本,但速度并不快.关于如何加快速度的任何建议?
inline void transpose4x4_SSE(float *A, float *B, const int lda, const int ldb) {
__m128 row1 = _mm_load_ps(&A[0*lda]);
__m128 row2 = _mm_load_ps(&A[1*lda]);
__m128 row3 = _mm_load_ps(&A[2*lda]);
__m128 row4 = _mm_load_ps(&A[3*lda]);
_MM_TRANSPOSE4_PS(row1, row2, row3, row4);
_mm_store_ps(&B[0*ldb], row1);
_mm_store_ps(&B[1*ldb], row2);
_mm_store_ps(&B[2*ldb], row3);
_mm_store_ps(&B[3*ldb], row4);
}
//block_size = 16 works best
inline void transpose_block_SSE4x4(float *A, float *B, const int n, const int m, const int lda, const int ldb ,const int block_size) {
#pragma omp parallel for …Run Code Online (Sandbox Code Playgroud) from cs1graphics import *
from math import sqrt
numLinks = 50
restingLength = 20.0
totalSeparation = 630.0
elasticityConstant = 0.005
gravityConstant = 0.110
epsilon = 0.001
def combine(A,B,C=(0,0)):
return (A[0] + B[0] + C[0], A[1] + B[1] + C[1])
def calcForce(A,B):
dX = (B[0] - A[0])
dY = (B[1] - A[1])
distance = sqrt(dX*dX+dY*dY)
if distance > restingLength:
stretch = distance - restingLength
forceFactor = stretch * elasticityConstant
else:
forceFactor = 0
return (forceFactor * dX, forceFactor * dY) #return …Run Code Online (Sandbox Code Playgroud) 我使用Eclipse,我想在其中使用gtkmm.我有以下代码:
#include <gtkmm.h>
#include <iostream>
int main(int argc, char *argv[]) {
Gtk::Main kit(argc, argv);
Gtk::Window mainWindow;
Gtk::Button button("Click here");
mainWindow.set_title("Eclipse/GTKmm Demo");
mainWindow.set_border_width(4);
mainWindow.set_default_size(200, 50);
mainWindow.add(button);
button.show();
Gtk::Main::run(mainWindow);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我添加pkg-config --cflags --libs gtkmm-3.0(当然有严重的口音)将Cross G ++ Compiler Miscellanous选项添加到Other标记中,并将Cross G ++ Compiler Miscellanous选项添加到Linker标记中.它不起作用!
这是编译日志:
**** Build of configuration Debug for project User Directory Changer ****
make all
Building file: ../main.cpp
Invoking: Cross G++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 `pkg-config --cflags --libs gtkmm-3.0` -MMD -MP -MF"main.d" -MT"main.d" -o …Run Code Online (Sandbox Code Playgroud) 就像标题一样.做这样的事情是可以的:
HashMap<Integer, Object> foo = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)
或者可能有更好的容器允许在任何索引处添加值?当说"更好"时,我的意思是"拥有更好的性能",然后"使用更少的RAM".
ArrayList<Object> bar = new ArrayList<>();
bar.add(10_000, new Object());
Run Code Online (Sandbox Code Playgroud)
想要在上面的代码中做一些事情,但这当然不适用于ArrayList.我想做的清单很稀疏; 索引是传播的 - 这就是我考虑HashMap而不是ArrayList的原因.
问候.
我目前正在编写一个使用带有标题的ListView的Android应用程序.它工作正常,但不是我想要的.ListView中的每个项目在其顶部和底部都有1-2px分隔符.标题也是如此 - 这就是问题所在.它看起来不太漂亮......
有趣的是,系统应用程序(例如"设置")没有这样的问题.
这是我的示例适配器:
setListAdapter(new BaseAdapter() {
@Override
public int getCount() {
return 10;
}
@Override
public Object getItem(int i) {
return i;
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View v = ((LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE))
.inflate(i % 3 == 0 ? R.layout.list_header : android.R.layout.simple_list_item_1, viewGroup, false);
((TextView)v.findViewById(android.R.id.text1)).setText("test");
return v;
}
});
Run Code Online (Sandbox Code Playgroud)
并列出标题布局文件:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello, World"
style="?android:attr/listSeparatorTextViewStyle">
</TextView>
Run Code Online (Sandbox Code Playgroud)
所以问题是:如何摆脱标题和常规项之间的项分隔符,就像,例如,设置应用程序吗?
编辑:看完答案后,我想澄清一件事.我不是 …
c++ ×3
java ×3
python ×2
android ×1
arraylist ×1
arrays ×1
avx ×1
eclipse-cdt ×1
flask ×1
focus ×1
gtkmm ×1
html ×1
indexing ×1
javascript ×1
list ×1
listview ×1
map ×1
mysql ×1
naming ×1
openmp ×1
optimization ×1
php ×1
posix ×1
response ×1
sse ×1
swt ×1
swt-awt ×1
templates ×1
testing ×1
transpose ×1