小编Ian*_*ath的帖子

类别主页和类别启动器之间的区别

我不清楚类别家庭和类别发射器之间的区别.从Android文档页面:

CATEGORY_HOME:这是家庭活动,这是设备启动时显示的第一个活动.

CATEGORY_LAUNCHER:应显示在顶级启动器中.

为了测试差异,我用这个清单创建了一个简单的app:

 <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".IntentCategoriesActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>
        <activity
            android:name=".Second"
            android:label="Whatever" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.HOME" />
            </intent-filter>

        </activity>

    </application>
Run Code Online (Sandbox Code Playgroud)

但我所看到的只是我的发射器活动而不是第二次活动.

有人可以解释一下我错过了什么吗?谢谢.

android android-intent

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

通过引用返回stl映射的正确方法/这个行为是否定义良好?

我有2个类,其中一个map<string, vector<string> >我希望能够在其他类中使用它.这是我的代码:

class a
{
    map<string, vector<string> > m;
    public:
    const map<string, vector<string> > & get()
    {
        return m;
    }
};

class b
{
    a obj;
    public:
    void test()
    {
        map<string, vector<string> > m= obj.get();
        // and then print
    }
};

int main(int argc, char ** argv)
{
    b bobj;
    bobj.test();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我返回地图的方式class a是否正确?它工作,但我只想确认它是否正确完成/我很幸运/任何其他关于代码的评论.

谢谢您的帮助.

c++ stl reference

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

在BST中使用unique_ptr而不是shared_ptr

我正在尝试实施BST unique_ptr.我有一份工作计划shared_ptr.我如何使用unique_ptr来强制实施BinarySearchTree的单一所有权语义?

当我替换shared_ptrunique_ptr,我得到的编译错误超出了我的理解范围.

#include <iostream>
#include <memory>

template<class T>
class BinarySearchTree{
    struct TreeNode;
    typedef std::shared_ptr<TreeNode> spTreeNode;
    struct TreeNode{
        T data;
        spTreeNode  left;
        spTreeNode  right;
        TreeNode(const T & value):data(value),left(nullptr),right(nullptr){}
    };



    spTreeNode root;
    bool insert(spTreeNode node);
    void print(const spTreeNode) const ;
public:
    BinarySearchTree();
    void insert( const T & node);
    void print()const;
};

template<class T>
BinarySearchTree<T>::BinarySearchTree():root(nullptr){}

template<class T>
void BinarySearchTree<T>::insert(const T & ref)
{
    TreeNode *node = new TreeNode(ref);
    if (root==nullptr)
    {
        root.reset(node);
    }
    else
    { …
Run Code Online (Sandbox Code Playgroud)

c++ shared-ptr unique-ptr binary-search-tree c++11

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

为什么第二个printf打印0

#include<stdio.h>
int main()
{
    char arr[] = "somestring";
    char *ptr1 = arr;
    char *ptr2 = ptr1 + 3;
    printf("ptr2 - ptr1 = %ld\n", ptr2 - ptr1);
    printf("(int*)ptr2 - (int*) ptr1 = %ld",  (int*)ptr2 - (int*)ptr1);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我明白

 ptr2 - ptr1
Run Code Online (Sandbox Code Playgroud)

给出3,但无法弄清楚为什么第二个printf打印0.

c pointers output

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

差异:A*a =新A(); 与A B; A*c =&b;

在采访中被问到.

  1. A* a=new A();
  2. A b; A *c=&b;

1和2有什么区别?

我在第二个语句中说过,对象是在堆栈和堆栈中创建的.我的朋友说对象总是在堆上创建的.

什么是正确的答案?

c++ pointers

3
推荐指数
2
解决办法
155
查看次数

用户定义类型行为的后增量运算符

我正在阅读一些书,我决定为用户定义的类型编写自己的后增量运算符实现。这是代码。

#include <iostream>

using namespace std;

class X
{
    int a;

    public:
    X(int x=1):a(x){}

    X operator++(int)
    {
        X oldobj = *this;
        (*this).a++;
        return oldobj;
    }

int get(){return a;}

};

int main()
{
    X obj,obj2;
    obj++ = obj2;
    cout<< obj.get() << endl;
    return 0;
}   
Run Code Online (Sandbox Code Playgroud)

我希望输出是1因为 obj2 的值将在增量完成后被复制。但输出是2.

想法?

PS 我知道这个代码不会赢得任何奖牌及其谬误。这只是为了我的理解。顺便说一句,++obj = obj2返回1

行为是否未定义?

c++ g++

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

输出说明

问题可能是一个非常基本的问题.我是Java的新手,所以请耐心等待.我的代码:

class A
{
     int b=10;

     A()
     {
          this.b=7;
     }

     int f()
     {
          return b;
     }
}

class B extends A{ int b; }

class Test
{
     public static void main(String[] args)
     {
          A a=new B();
           System.out.println(a.f());
     }
}
Run Code Online (Sandbox Code Playgroud)

为什么输出7?B类不获得自己的实例变量b吗?

java

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

为什么这个程序会编译?

public class Fir extends Test 
{
    public static void main(String args[])  
    {
        Fir fir = new Fir();
        System.out.println(fir);
    }

    public String toString(String x) throws RuntimeException
    {
        return "Fir";
    }
}

class Test
{
    protected String toString(String x) throws NullPointerException
    {
        return "Test";
    }
}
Run Code Online (Sandbox Code Playgroud)

这两个类都没有toString适当地覆盖该方法.

问题:这些方法是否被覆盖?

如果是,那么这个规则怎么样:如果超类方法声明了一个异常,子类重写方法可以声明相同,子类异常或没有异常但不能声明父异常.RuntimeException是...的父母NullPointerException.

java

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

为什么我会收到`IllegalMonitorStateException`异常

我有以下Java代码:

public class Lean extends Thread   
{
    public static void main(String args[]) throws InterruptedException  
    {
        Lean lean = new Lean();
        System.out.println("starting");
        lean.start();
        lean.join();
        System.out.println("end");

    }

    public void run()
    {
        try
        {
            System.out.println("waiting");
            wait(20000);
        } 
        catch (InterruptedException e)
        {
            e.printStackTrace();
        }
        finally
        {
            System.out.println("waiting finished");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是(不断变化 - 有时我甚至看不到"结束"打印)

starting
waiting
waiting finished
end
Exception in thread "Thread-1" java.lang.IllegalMonitorStateException
    at java.lang.Object.wait(Native Method)
    at Lean.run(Lean.java:18)
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 为什么我会IllegalMonitorStateException例外?

  2. 为什么thread.join不能按照预期的方式工作?(我看不到有时会看到"结束")

java multithreading

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