小编Mir*_*cek的帖子

"永久"std :: setw

有没有办法永久设置std::setw操纵器(或其功能width)?看这个:

#include <iostream>
#include <iomanip>
#include <algorithm>
#include <iterator>

int main( void )
{
  int array[] = { 1, 2, 4, 8, 16, 32, 64, 128, 256 };
  std::cout.fill( '0' );
  std::cout.flags( std::ios::hex );
  std::cout.width( 3 );

  std::copy( &array[0], &array[9], std::ostream_iterator<int>( std::cout, " " ) );

  std::cout << std::endl;

  for( int i = 0; i < 9; i++ )
  {
    std::cout.width( 3 );
    std::cout << array[i] << " ";
  }
  std::cout << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

跑完后,我看到:

001 …
Run Code Online (Sandbox Code Playgroud)

c++ templates setw

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

TextView的样式和android:textAppearance属性有什么区别?

如果我将我定义TextView为:

 <TextView
        style="@android:style/TextAppearance.DeviceDefault.Large"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
Run Code Online (Sandbox Code Playgroud)

它与做的基本相同:

 <TextView
        android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
Run Code Online (Sandbox Code Playgroud)

我知道这style是一种更宽泛的限定符(即不能设置所有属性android:textAppearance)但是它提出了一个问题:为什么要打扰?使用android:textAppearance结束有什么好处style吗?

android textview android-styles

26
推荐指数
4
解决办法
3638
查看次数

在向量中移动项目的最有效方法是什么?

我已经看到了一些std::rotate可以使用的特殊情况或者与其中一种搜索算法的组合,但通常是:当一个具有N个项目的向量并且想要编写如下函数时:

void move( int from, int count, int to, std::vector<int>& numbers );
Run Code Online (Sandbox Code Playgroud)

我一直在考虑创建一个新的矢量+ std::copy或插入/擦除的组合,但我不能说我最终得到了一些漂亮而优雅的解决方案.

c++ stl

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

如何使用std :: copy读取任意数量的值?

我正在尝试对此进行相反的操作:

std::ostream outs; // properly initialized of course
std::set<int> my_set; // ditto

outs << my_set.size();
std::copy( my_set.begin(), my_set.end(), std::ostream_iterator<int>( outs ) );
Run Code Online (Sandbox Code Playgroud)

它应该是这样的:

std::istream ins;

std::set<int>::size_type size;
ins >> size;

std::copy( std::istream_iterator<int>( ins ), std::istream_iterator<int>( ins ) ???, std::inserter( my_set, my_set.end() ) );
Run Code Online (Sandbox Code Playgroud)

但是我坚持使用'end'迭代器 - 输入交互器不能使用std :: advance,我也不能使用两个具有相同源的流...

有什么优雅的方法如何解决这个问题?当然我可以用于循环,但也许有更好的东西:)

c++ iterator istream-iterator stl-algorithm

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

如何在 Android Studio 的版本控制项目中共享运行/调试配置?

这应该很容易,但由于某种原因我无法让它工作。Google/Android Studio 人员建议避免将 .idea 和 *.iml 文件置于版本控制之下,而使用“导入项目”。工作正常,没问题。

但是,如果我想共享运行/调试配置,我会选中“运行/调试配置”对话框中的“共享”复选框,该对话框会创建 .idea/configurations/name.xml。好吧,让我们在 .gitignore 中为此文件添加一个例外。

现在,会发生什么:

  1. git checkout(gradle 文件 + .idea/configurations/name.xml)
  2. 导入项目(生成所有.idea和*.iml文件)
  3. 运行 -> 编辑配置... -> 我在那里看到共享配置吗?没有!

这是因为配置必须由 .idea/workspace.xml 文件引用。但每个人都建议避免对此文件进行版本控制,因为它包含用户设置,因此应该自动生成。

那么如何解决这个先有鸡还是先有蛋的问题呢?

intellij-idea android-studio

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

智能工具(插件?)用于从头文件创建类主体

你可能知道这一点 - 你要创建一个很好的类,你想一点,甚至可以在这里和那里画一点UML,然后你就可以实现了.您可以使用成员函数创建头文件,甚至可能创建一些成员属性.

现在是沉闷的工作 - 将所有内容重写为.cpp文件.使用像Visual Assist这样的东西可以缩短这个任务,但仍然 - 我真的需要这样做吗?在Visual Studio中是否有任何工具/插件/直接功能为我这样做?您知道,例如右键单击解决方案资源管理器中的头文件,"为此头文件创建新的.cpp".

c++ header class visual-studio

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

可以同时创建两个实例吗?

关于为什么Java构造函数不能同步的后续问题:如果对象的构造函数无法同步,这是否意味着无法在字面上同时创建两个实例?例如:

public class OutgoingMessage {
    public OutgoingMessage() {
        this.creationTime = new Date();
    }
    Date creationTime;
}
Run Code Online (Sandbox Code Playgroud)

creationDate.getTime()始终返回不同的值?我知道多任务/多线程的基础知识但是多CPU核心呢?在这种情况下,操作系统不必切换上下文,或者我错了吗?

java multithreading

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

在C++中重叠类似java的接口

我已经阅读过许多地方,使用C++的抽象类和所有纯虚方法可以100%模拟Java的界面.

我正在尝试转换这段java代码:

interface A {
    void a();
}

interface B extends A {
    void b();
}

class C implements A {
    public void a() {
    }
}

class D extends C implements B {
    public void b() {
    }
}

D d = new D();
d.a();
d.b();
Run Code Online (Sandbox Code Playgroud)

在C++中使用这样的东西:

class A {
public:
    virtual void a() const = 0;
protected:
    virtual ~A() {
    }
};

class B : public A {
public:
    virtual void b() const = 0;
protected:
    virtual ~B() …
Run Code Online (Sandbox Code Playgroud)

c++ java inheritance interface

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

为什么我不能有一个纯虚拟赋值运算符?

我有点迷失在 C++ 运算符中。我想为两个不同的类强制执行赋值运算符,即这样可以相互分配一个:

class A {
public:
    virtual A &operator =(const A &a) = 0;
};

class B : public A {
public:
    virtual A &operator =(const A &a) override {
        std::cout << "B" << std::endl;
        return *this;
    }
};

class C : public A {
public:
    virtual A &operator =(const A &a) override {
        std::cout << "C" << std::endl;
        return *this;
    }
};

int main(int argc, char *argv[])
{
    B b;
    C c;
    b = c;

    // leads to …
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading assignment-operator

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

在Android O上收听Wi-Fi(直接)可用性(API> = 26)

考虑到新的广播限制,针对Android O的应用程序无法再在其清单中注册隐式广播的广播接收器,我一直想知道如果我有兴趣检测wifi状态更改,我有哪些选项?

例外列表不帮助这里,以前注册的一个隐含的广播适用于应用的建议可以通过使用得到了类似的功能的jobscheduler工作并没有.

虽然JobInfo.Builder.setRequiredNetworkTypeNetworkRequest.Builder.addTransportType非常接近,但他们都认为应用程序对连接的网络感兴趣,对于Wi-Fi Direct(P2P)并不总是可取的 - 想象一下用户的场景启用Wi-Fi,触发接收器检查附近的设备并提供一些操作.

直到Android O这很容易,人们可以听清楚WIFI_STATE_CHANGED_ACTION或者WIFI_P2P_STATE_CHANGED_ACTION在清单中,但新规则使得这不可能.我想这个想法是,如果用户对附近的设备感兴趣,应该使用应用程序.我能想到的唯一解决方法就是JobScheduler每隔一分钟左右开始一次工作来手动检查wifi状态,但这完全违背了这些规则试图强制实施的省电的想法.

android broadcastreceiver wifi

5
推荐指数
0
解决办法
207
查看次数