小编JTK*_*JTK的帖子

减去指针

我被要求描述这些代码行正在为大学作业做些什么

int main() {
    int t1[] = {0,0,1,1,1}, t2[] = {0,0,1,1,1};
    int *p1 = t1, *p2 = t2;

    while (!*p1++ || !*p2++);
    cout << (p1-t1) << endl;
    cout << (p2-t2) << endl;
}
Run Code Online (Sandbox Code Playgroud)

我的看法是,创建了2个int类型的数组并填充了值,创建了2个指针并指向每个数组,然后我开始遇到麻烦.

while (!*p1++ || !*p2++);
Run Code Online (Sandbox Code Playgroud)

对我来说这是说在0移动*p1一个地方的位置或0移动*p2一个地方的位置时,我对这个假设真的没有信心吗?

cout << (p1-t1) << endl;
Run Code Online (Sandbox Code Playgroud)

那么我们继续前进cout,现在我对此的看法是,我正在从位置减去p1位置t1,在那里p1被while定位并t1指向数组中的第一个位置.我可能完全错了,我只是在学习指针,所以如果我的假设错了,请记住这一点.

c++ pointers

38
推荐指数
4
解决办法
2501
查看次数

Android mkdirs()无效

我正在开发我的第一个Android应用程序,我在尝试创建一个目录来保存录制的视频文件时遇到了问题.

我在我的主要活动buttonOnClickRecord中有一个方法调用意图使用android摄像头,我也在这个方法调用期间创建一个文件,我正在调用mkdirs()它上面的方法来创建存储文件的目录.

我也在<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />我的Manifest中实现 了.

public void buttonOnClickRecord(View v){
        mediaFile =
                new File(Environment.getExternalStorageDirectory().getAbsolutePath()
                        + "/NewDirectory/myvideo.mp4");
        mediaFile.mkdirs();

        Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
        if (takeVideoIntent.resolveActivity(getPackageManager()) != null) {

            Uri videoUri = Uri.fromFile(mediaFile);
            takeVideoIntent.putExtra(MediaStore.EXTRA_OUTPUT, videoUri);
            startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE);
        }
    }

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) {

            Toast.makeText(this, "Video saved to:\n" +
                    data.getData(), Toast.LENGTH_LONG).show();
        } else if (resultCode == RESULT_CANCELED) {


  Toast.makeText(this, "Video recording cancelled.", …
Run Code Online (Sandbox Code Playgroud)

android mkdir

5
推荐指数
1
解决办法
1万
查看次数

Wildfly 10 Final 无限期地创建 ActiveMQ-client-global-threads

我有一个Wildfly ASJMS 设置,我正在使用 Jconsole 监视它,并注意到在我什至在我的会话上创建会话之前ConsumerProducer线程数稳步增加之前,我以前Wildfly 9 final出于相同目的使用它,它的线程使用率即使在使用,但它有一个内存泄漏促使我升级。

Jconsole我可以看到:

Thread-2(ActiveMQ-client-global-threads-3258368)
Thread-4(ActiveMQ-client-global-threads-3258368)
Thread-5(ActiveMQ-client-global-threads-3258368)
Thread-6(ActiveMQ-client-global-threads-3258368)
.
.
.
Thread-16(ActiveMQ-client-global-threads-3258368)
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?是否有我可以更改的设置导致这些线程产生,是否有更多信息可以Jconsole帮助我解决这个问题?

activemq-classic jms jconsole wildfly-10

4
推荐指数
1
解决办法
2037
查看次数

java.sql.Timestamp到Joda Instant,反之亦然

这可能吗?我找到了一些转换为localDateTime和从localDateTime转换的解决方案,就像在这里可以看到的那样

但我找不到Joda Instant的解决方案......

java jodatime sql-timestamp

3
推荐指数
1
解决办法
2318
查看次数

Java 8 lambda添加到Hashmap中的Hashmap中的列表中

我有一个List<POJO>我想从中提取数据,我感兴趣的变量是:

  • Environment: String
  • Application: String
  • Throughput: Double

有7个Environment对象,每个对象Environment有18个Application对象,每个对象都有多个values.

我正在尝试迭代List<POJO>并将这些值存储在一个Hashmap<Environment.ToString, Hashmap<Applications.ToString, List<Double>>

我正在尝试使用Java 8的Lambda功能; 我的代码到目前为止:

private HashMap<String, List<BigDecimal>> appMap = new HashMap<String, List<BigDecimal>>();
private HashMap<String, HashMap> envMap = new HashMap<String, HashMap>();

for(POJO chartModel: List<POJO>) {
    appMap.computeIfAbsent(chartModel.getName(), v -> new ArrayList<BigDecimal>())
          .add(BigDecimal.valueOf(chartModel.getThroughput()));
    envMap.put(chartModel.getEnvironment(), appMap);
}
Run Code Online (Sandbox Code Playgroud)

首先,是否有一种速记方式来迭代List内部Map使用Java8

其次,我的代码不太正确,所以目前地图将所有Throughput值添加到其Application键中,因此我最终得到了18个带有值列表的键.

我需要它做的是envMap我应该有7个Environment对象,每个Application对象有18个对象和值,所以Application总共会有126个对象.这可以通过我尝试的方式实现,是否有Lambda方法来实现这一目标?

java lambda hashmap java-8

3
推荐指数
1
解决办法
1747
查看次数

使用Apache Commons Math插值函数

我正在尝试实现一些插值函数来绘制一些值,其中X值= Date.seconds,Y值= double.

我一直在研究用Apache Commons Math lib来实现这个目标,我发现了一种我认为可以在这里使用的方法

我试图理解的方法:

public double linearInterp(double[] x, double[] y, double xi) {
   // return linear interpolation of (x,y) on xi
   LinearInterpolator li = new LinearInterpolator();
   PolynomialSplineFunction psf = li.interpolate(x, y);
   double yi = psf.value(xi);
   return yi;
}
Run Code Online (Sandbox Code Playgroud)

我不明白我应该xi从哪里获得价值?

什么是我进入这个方法用于西席什么价值,我会通过我的阵列应该循环X值和传递的第i个元素X与数组XY

当我想绘制这个新数据时,我是否使用返回yi的传入xi来绘制?

java interpolation apache-commons-math

3
推荐指数
1
解决办法
8964
查看次数

在 Fragment 中访问 getExternalCacheDir()

我需要将外部缓存目录传递给 post 请求,我一直无法找到从片段内调用 getExternalCacheDir() 方法的方法,我只能在 Activity 中调用它。

是否可以在片段中使用此方法,或者是否有其他解决方案?

java android android-fragments

1
推荐指数
1
解决办法
1028
查看次数

模板类中的max和min出错

我写了一个模板类,调用Triple3个对象,type T我有三个函数来获取这3个对象的最小值,最大值和中值.

我正在使用STL 的minmax函数来实现这一目标.我必须使我的所有方法const得到最大值和最小值才能工作,并且它确实有效,使用普通类型,但后来我创建了一个名为的类Employee,这个类有2个函数getSalary(),而且getName(),我重载了< >运算符,所以我可以在我的模板中使用此类.

这是我遇到问题的地方,编译器抱怨:const std :: string Employee :: getName(void)':无法将'this'指针从'const Employee'转换为'Employee&'

我已经尝试将所有内容更改为员工类中的c​​onst而没有成功,除非一切都是常量,否则我无法使三元组工作.

我哪里出错了?

Triple.h

#ifndef TRIPLE_H
#define TRIPLE_H
template<class T>
class Triple{
public:
    Triple();
    Triple(const T fE, const T sE, const T tE);
    const T maximum();
    const T minimum();
    const T median();
private:
    const T firstElement;
    const T secondElement;
    const T thirdElement;


};
#endif
Run Code Online (Sandbox Code Playgroud)

Triple.CPP

#include "Triple.h"
#include <algorithm> 
using std::max;
using …
Run Code Online (Sandbox Code Playgroud)

c++ templates stl max min

0
推荐指数
1
解决办法
547
查看次数

使用矢量 C++ 的双打优先队列

我需要使用 STL 向量为优先级队列编写代码

我被分配了使用向量实现优先级队列的任务,之前我使用列表实现了一个队列,这非常简单,因为列表为我提供了我需要的所有功能。除非我遗漏了优先级队列所没有的东西?

cplusplus.com 上对 Priority Queue 的参考说明:在底层容器(向量)上调用 push_back 和对 push_heap 调用一次(我假设是算法),我不确定如何实现 push_heap 和 pop_heap 或者我是否需要根本。

作业特别要求向量

我正在寻找一个很好的实现/解释。

到目前为止,这是 mo 代码:

.cpp

#include"PriorityQueue.h"
#include <algorithm>

PriorityQueue::PriorityQueue(){

}
void PriorityQueue::push(double val){
    s.push_back(val);

}
void PriorityQueue::pop(){


}
double PriorityQueue::front() const{
    return s.front();
}
double PriorityQueue::back() const{
    return s.back();
}
Run Code Online (Sandbox Code Playgroud)

。H

#ifndef PRIORITYQUEUE_H
#define PRIORITYQUEUE_H
#include <vector>
using std::vector;
class PriorityQueue{
public:
    PriorityQueue();
    void push(double val);
    void pop();
    double front() const;
    double back() const;
private:
    vector<double> s;
};
#endif // !PRIORITYQUEUE_H
Run Code Online (Sandbox Code Playgroud)

如果我需要编写代码来跟踪顶部和底部索引,我可能会缺少基本功能,我只是有点卡住了,没有时间浪费尝试不同解决方案的负载。

c++ vector priority-queue

-3
推荐指数
1
解决办法
1981
查看次数