小编mad*_*adu的帖子

Android - 从短信中提取文字

我希望能够从收到的短信中提取文本.我不确定是否应该使用内容提供商,或者短信息包含在广播接收者收到的意图中.

我有一个等待短信的广播接收器,并希望检查收到的消息的内容.

谢谢.

sms android broadcastreceiver android-intent

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

C++:按引用返回按值返回

我一直在阅读迈尔斯的书,并通过引用/指针和值返回来查看项目.关键是,如果我们的函数是这样的:

ClassA& AddSomething(ClassA classA)
{
  ClassA tempClassA;
  //... do something on tempClassA
  return tempClassA;
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为我们返回对堆栈上创建的对象的引用,并且现在函数已经完成.

他给出了两个解决方案

  1. 在函数内部使用本地静态ClassA.这有它的问题,但至少我们可以确定该对象存在.
  2. 作为对象返回:

    ClassA AddSomething(ClassA classA)
    {
      ClassA tempClassA;
      //... do something on tempClassA
      return tempClassA;
    }
    
    Run Code Online (Sandbox Code Playgroud)

现在,如果我要这样做:

ClassA obj1;
ClassA obj2 = AddSomething(obj1);
Run Code Online (Sandbox Code Playgroud)

我现在的困惑是,在执行此行时:

  1. 创建一个tempClassA的'副本'并传递给ClassA的复制构造函数(初始化obj2)?要么
  2. tempClassA将自身传递给ClassA的复制构造函数,因为复制构造函数接受引用.

所以基本上,传递给复制构造函数的是对tempClassA的引用(在函数内部的堆栈中创建)或对tempClassA副本的引用.

另外,我的另一个问题是,我已经读过,如果我得到函数局部变量的引用,那么本地变量将不会被删除.例如,

ClassA & classRef = AddSomething(obj1);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果AddSomething()返回引用,则classRef不指向已删除的引用,因为将保留本地变量.我理解正确吗?

c++ pass-by-reference

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

奇怪的构造函数行为

我正在使用Visual Studio 2013,这就是我想要弄清楚的:

#include <iostream>
#include <vector>
using namespace std;

class A
{
public:
    int x = 1;
    bool y = true;

    A(int _x, bool _y) : x(_x), y(_y)
    {
        cout << "Constructor #1" << endl;
    }

    A(std::initializer_list<int> init_list)
    {
        cout << "Constructor #2" << endl;
    }
};


int main(int argc, char** argv)
{
    A Aobj1(10, false);
    A Aobj2(20, "false");
    A Aobj3{30, false};
    A Aobj4{40, "false"};

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是:

Constructor #1
Constructor #1
Constructor #2
Constructor #1
Run Code Online (Sandbox Code Playgroud)
  • 对构造函数#1的第一次调用很好

  • 现在 …

c++ initialization initializer-list

4
推荐指数
2
解决办法
137
查看次数

播放声音效果(CLICK / NAVIGATION_RIGHT)以获得按钮点击-Android

我正在尝试使用该playSoundEffect ()方法在单击按钮时播放声音效果,但是到目前为止,由于某种原因,事实证明它非常困难。

我定义了以下内容。

<ImageButton android:id="@+id/Button_flip" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="FLIP!"
android:src="@drawable/flip" android:soundEffectsEnabled="true">
</ImageButton>
Run Code Online (Sandbox Code Playgroud)

然后,

button_flip.playSoundEffect(android.view.SoundEffectConstants.CLICK);
Run Code Online (Sandbox Code Playgroud)

在onCreate()方法中调用。但是当我单击按钮时,似乎无法听到声音。我在这里想念什么?该文档没什么可继续的。

我需要在onClick()方法中定义/调用吗?

任何帮助表示赞赏。

audio android effects button

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

ExpressJS/PassportJS:身份验证与会话

我开始使用NodeJS(和Web编程),并且无法理解身份验证和会话.我阅读了很多教程,当我认为我有它时,我感到困惑.我的问题是处理身份验证(注册/登录)和持久会话.

我正在使用PassportJS,经过多次教程之后,我想我终于找到了一个很好的教程:https://scotch.io/tutorials/easy-node-authentication-setup-and-local

但现在我很困惑如何通过serializeUser和deserializeUser处理会话.请耐心等待我这个新手问题,但我的理解是用户ID用于跟踪会话.

所以我的问题是:

  1. 用户ID是由Passport自动生成的吗?
  2. 序列化只是将用户ID添加到会话cookie?
  3. 最后,如何更改会话参数,如maxAge?我应该在哪里设置它们?我对Express会话和Passport会话感到困惑.

如果有人可以提供一个赞赏的好教程的链接.

谢谢.

cookies session node.js express passport.js

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

为什么Koening查找不能在这里工作?

依赖于参数的查找说:

对于类类型的参数(包括union),该集合包含... a)类本身b)...

那为什么printX找不到X?

 #include<iostream>
using namespace std;

class A {
public:
    static const int X = 1;
};

class B {
public:
    static void printX(A a)
    {
        cout << "X is " << X << endl;
    }
};

int main(int argc, char** argv)
{
    A a;
    B::printX(a);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ argument-dependent-lookup

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

ImageView动画帮助

我正试图弄清楚如何动画进出Imageviews.

基本上我有一个LinearLayou带有吨ImageViewButton在底部.每次按下按钮,都会onClick()被调用,我会这样做

image.setImageResource(imageArray[imageCounter]);
Run Code Online (Sandbox Code Playgroud)

我只需ImageView通过选择@drawable中的不同照片来更改显示的图像.现在我想在更改这些图像视图时(按下按钮时)放置动画.我用了

inAnimation = AnimationUtils.makeInAnimation(this,true);
Run Code Online (Sandbox Code Playgroud)

在onClick()我做

image.setImageResource(imageArray[imageCounter]); 
  image.startAnimation(inAnimation);
Run Code Online (Sandbox Code Playgroud)

这也很好.新图像进入屏幕动画.但如何才能把一个动画吗?似乎只能使用startAnimation()分配一个动画.

为imageview设置动画然后为另一个imageview设置动画的最佳方法是什么?因为我想根据按下的按钮改变动画,所以我不能使用ViewFlipper.例如,如果我按下button_Anim1,当前图像将从右侧滑出,新图像将淡入.但是如果我按下button_Anim2,当前图像将从顶部滑出,新图像将从左侧滑动.等等.

我看到我不能image.startAnimation()onClick()方法中使用两种不同 的方法来制作当前图像View.INVISIBLE,然后制作新图像View.VISIBLE.

任何建议表示赞赏.谢谢.

animation android imageview

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

C#List - 添加到列表的底部

我有一个,List<T>并希望从底部开始添加,但我得到一个运行时IndexOutOfBoundsException.

我已经初始化了一个容量列表:

List<ClassA> ClassesOfA = new List<ClassA>(10);
...
...
ClassesOfA[5] = classAObj;
...
Run Code Online (Sandbox Code Playgroud)

反正有没有这样做?

我需要这样做,因为我正在从底部分析另一个列表并将结果添加到此列表中.所以我需要能够从底部添加.有没有办法做到这一点,而不是在添加对象之前初始化List<ClassA>with ClassA对象?

c# list

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

非平凡的复制构造函数有什么作用?

在C++中,如果未定义复制构造函数,编译器将为您执行此操作.如果定义了一个,编译器就不会.编译器生成的复制构造函数可以是微不足道的或非平凡的.在一个简单的复制构造函数中,它执行成员方式的复制.而已.

但是,如果存在虚函数,则复制构造函数不重要.它不仅可以按比特复制.

所以这是我的计划.没什么特别的.只是为了说明我的观点..

#include<iostream>
using namespace std;

class baseClass
{
public:
    int var;
    int* varPtr;
    const float floatVar;
    int &intRefVar;

    baseClass(int value) : var(value), varPtr(&var), floatVar(value), intRefVar(var)
    {
        cout << "baseClass constructor" << endl;
    }

    baseClass(const baseClass& objToCopy) : var(objToCopy.var), varPtr(&var), floatVar(objToCopy.floatVar), intRefVar(var)
    {
        cout << "baseClass copy constructor" << endl;
    }

    virtual void func()
    {
        cout << "Just a virtual func." << endl;
    }
};

class derivedClass : public baseClass
{
public:
    derivedClass(int value) : baseClass(value)
    {
        cout << …
Run Code Online (Sandbox Code Playgroud)

c++ virtual-functions copy-constructor

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

逐行追加 Pandas 数据框

我已经检查了append并且它应该可以完成这项工作,但是由于某种原因我无法弄清楚按行附加不起作用。

我有两个大小为 (x,y) 的数据框。我想按行组合这两个,因此最终数据帧的大小为 (2x,y)。

我尝试执行以下操作:

frame_combined = frame_1.append(frame_2, ignore_header=True)
frame_combined = pd.concat([frame_1, frame_2], axis=1) # also axis=0
Run Code Online (Sandbox Code Playgroud)

编辑:做这些给了我一个 (2x,2y) 数据框。而且我的数据框没有标题。

我错过了什么,我得到了一个按行和按列附加的数据框?我怎样才能做一个简单的按行追加?

谢谢你。

python dataframe pandas

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

使用JAXB的Marshal内部类 - Java

我在JAXB http://blog.adamsbros.org/2010/02/07/jaxb-example-code/上遵循了以下教程,并希望修改它以包含我想要作为嵌套(内部)类的类如下:

import javax.xml.bind.JAXBContext; 
import javax.xml.bind.JAXBException; 
import javax.xml.bind.annotation.*; 
import java.io.StringReader; 
import java.io.StringWriter; 

public class HighlevelClass
{


@XmlRootElement(name = "employee")
@XmlAccessorType(XmlAccessType.FIELD)
public class Employee
{

    @XmlAttribute
    public int id;

    @XmlElement
    public
    String firstName;

    @XmlElement
    public
    String middleName;

    @XmlElement
    public
    String lastName;

    public Employee()
    {
    }

}

public static void main(String args[]) throws JAXBException
{

    HighlevelClass HClass = new HighlevelClass();
    Employee john = HClass.new Employee();
    john.firstName = "John";
    john.middleName = "Robert";
    john.lastName = "Doe";
    john.id = 1;

    // write it out …
Run Code Online (Sandbox Code Playgroud)

java jaxb inner-classes

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

降低Valgrind输出

我编写了以下代码,以便对Valgrind有一个基本的了解,并且很难解释它的输出.这可能与Valgrind无关,但更基本的C++.

#include <string>
#include <iostream>
using namespace std;

class Valgrind_testclass
{
std::string * stringInHeap;

public:
  Valgrind_testclass() { 
    stringInHeap = new std::string("String in heap");   
  }
  ~Valgrind_testclass() {
    //delete stringInHeap;                  
  }

  void PrintFunc(void) {
    cout << "Nothing but a printout" << endl;
  }
};

int main()
{
 Valgrind_testclass * valObjPtr = new Valgrind_testclass();  
 delete valObjPtr;               
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

Valgrind输出:

==4459== HEAP SUMMARY:
==4459==     in use at exit: 31 bytes in 2 blocks
==4459==   total heap usage: 3 allocs, 1 frees, 35 bytes …
Run Code Online (Sandbox Code Playgroud)

c++ valgrind

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

在外部声明一个数组并使用初始化列表进行初始化

我在初始化2D int数组时遇到问题.我的程序结构是:

int arr[2][2];
if(val==1)
 arr = {{1,1}, {2,2}};
else if (val==2)
 arr = {{3,3}, {4,4}};
...
...

int x = arr[1][1];
...
Run Code Online (Sandbox Code Playgroud)

我收到错误"表达式必须是可修改的左值"

谢谢.

c++ multidimensional-array

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