小编Анд*_*кий的帖子

如何在Windows中打开一个控制台窗口,停止使用MinGW(g ++)编译的程序

我使用MinGW g ++编译了一个程序.当我运行它时,除了主应用程序窗口之外,它还会打开一个控制台窗口.什么是编译器标志来阻止它?

windows mingw g++

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

在生成器中使用上下文管理器是否有意义的方法?

from contextlib import contextmanager

@contextmanager
def context():
    print "entering"
    yield
    print "exiting"

def test():
    with context():
        for x in range(10):
            yield x

for x in test():
    if x == 5:
        break  # or raise
Run Code Online (Sandbox Code Playgroud)

输出:

entering
Run Code Online (Sandbox Code Playgroud)

__exit__for-loop被中断时,有没有办法让python自动调用context()的方法?或者其他一些实现相同目标的方式?我对生成器和上下文管理器的了解让我怀疑它是不可能的,但是这使得上下文管理器在内部生成器中相当无用,不是吗?在我看来,块yield内的语句with应该引发一个红旗,上下文管理器__exit__可能无法运行.

python generator contextmanager

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

c ++以对数方式增加循环增量

我想循环这样的整数:

1,2,3,4,5,6,7,8,9,10,20,30,40 ......,100,200,......,1000,2000,......

我有代码执行此操作(如下所示)但是它很麻烦,并且通常不编程以处理不同的停止限制:

int MAX = 10000;

for (int i = 1; i <= MAX; i++) {

    cout << i << endl;

    if (i >= 10 && i < 100) {
        i += 9;
    }

    else if (i >= 100 && i < 1000) {
        i+= 99;
    }

    else if (i >= 1000 && i < 10000) {
        i += 999;
    }

}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,这是前面提到的指定的情况 - 所以我想知道一种以更一般的方式对其进行编码的方法,因为我的要求MAX将是10 ^ 9的数量级所以使用代码像上面这样太不切实际了.

c++ for-loop logarithm

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

如何在Java中找到ArrayList中元素的位置?

我的代码将用户输入的字符与具有字符的 ArrayList 进行匹配,并显示结果。我使用循环和 IF 语句来打印匹配字符和不匹配字符的不同结果。我使用 Array.Contains() 方法将用户输入与 ArrayList 元素进行比较。我试图在匹配时打印元素在 ArrayList 中的位置。

例如:ArrayList 有:[a, b, c, d] 和位置(a 为 0,b 为 1,c 为 2,d 为 3)。如何以编程方式打印匹配元素的位置?

这是我的代码:

ArrayList<Character> charsList = new ArrayList<Character>();

for (int i = 0; i < wordsList[0].length(); i++) {
    charsList.add(wordsList[0].charAt(i));
}

for (int i = 0; i < wordsList[0].length(); i++) {
    inputValue = input.next().charAt(0);
    if (charsList.contains(inputValue)) {
        System.out.println("Matched!");  
    }
    else {
        System.out.println("Not Matched!");
    }   
}
Run Code Online (Sandbox Code Playgroud)

java arraylist

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

C++ shared_ptr 序列化

我有一个名为A的类,我想将它的对象序列化到另一个名为B 的类中。但我不断收到此错误:

error: ‘class std::shared_ptr<A>’ has no member named ‘serialize’
Run Code Online (Sandbox Code Playgroud)

A类是:

class A
{
public:
  typedef shared_ptr<A> Ptr;
  string name;

  Predicate(const string &name = ""):name(name)
  {}

private:
  template<typename Archive>
  void serialize(Archive& archive, const unsigned int v) 
  {
    archive & name;
  }
  friend class B;
  friend class boost::serialization::access;
}
Run Code Online (Sandbox Code Playgroud)

B类:

class B
{
public:
  typedef unordered_set<A::Ptr, 
                        APtrKeyHash, 
                        APtrKeyEq> A_set_t;
  A_set_t test;

private:
  template<typename Archive>
  void serialize(Archive& archive, const unsigned int v) 
  {
    archive & …
Run Code Online (Sandbox Code Playgroud)

c++ serialization boost shared-ptr

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