小编jan*_*anr的帖子

std map复合键

我有一个运算符<()方法的问题,这是std :: map所必需的.我使用结构作为复合键,如下所示:

struct MyKey {
  std::string string1;
  std::string string2;
  std::string string3;
  unsigned int uint1;

  friend bool operator<(const MyKey& mk1, const MyKey& mk2)
  {
    return mk1.string1 < mk2.string1 && mk1.string2 < mk2.string2 &&
           mk1.string3 < mk2.string3 && mk1.uint1 < mk2.uint1;
  }
}
Run Code Online (Sandbox Code Playgroud)

如前所述,我想使用具有4个值的复合键,但我不知道如何为运算符< method 实现此功能.我观察到一次只存储1个值!

任何人都可以告诉我正确的情况如何?

提前致谢!

c++ stdmap

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

两个Java数组的对称差异

我有两个数组

 String[] ID1={"19","20","12","13","14"};

 String[] ID2={"10","11","12","13","15"};  
Run Code Online (Sandbox Code Playgroud)

在比较上面两个数组时,如何得到以下答案.

我想在比较上面两个数组时排除常见元素.

 String[] Result={"14","15","19","20","10","11"};
Run Code Online (Sandbox Code Playgroud)

java arrays java-api

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

向后迭代QList

如果我执行以下代码:

QList<int> l;
QList<int>::const_iterator lI;

l.append(1);
l.append(2);
l.append(3);
l.append(4);
lI = l.constEnd();

while(lI != l.constBegin()) {
  std::cout << *lI << std::endl;
  --lI;
}
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

17
4
3
2
Run Code Online (Sandbox Code Playgroud)

我已经通过使用它解决了它QListIterator<int>,但我真的不明白为什么这不起作用!

提前致谢 ...

c++ qt iterator

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

避免在正则表达式中进行分组

我有以下正则表达式来检查时间格式HHMM

([0-1][0-9]|[2][0-3])([0-5][0-9])
Run Code Online (Sandbox Code Playgroud)

这很完美,但现在我遇到了我的应用程序的问题.它要求上表达式的结果仅返回一个组中的时间,而不是两个组中的时间.是否有可能捆绑正则表达式的部分而不对它们进行分组?

提前致谢 ...

regex

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

Ada中的多线程

我正在学习Ada,我在理解并发模型方面遇到了一些问题.以下测试应用程序应创建3个并行运行的任务,并简单地打印一系列数字.如果我没有使用任务,entry那么一切都很好,但如果我使用条目,则程序调用块并且根本不会发生并发.

我知道有可能实现互斥和同步执行,但我无法理解如何分离任务,甚至可能创建其中的几个.

q_multithreading.ads:

package Q_MULTITHREADING is

  task type TASK_LOOP is
  end TASK_LOOP;

  type TASK_LOOP_ACCESS is access TASK_LOOP;

  --===========================================================================

  task type TASK_ENTRY_LOOP is
    entry P_ITERATE(to : in Integer);
  end TASK_ENTRY_LOOP;

  type TASK_ENTRY_LOOP_ACCESS is access TASK_ENTRY_LOOP;

  --===========================================================================

  procedure P_EXECUTE_NO_ENTRY;

  procedure P_EXECUTE_ENTRY(to : in Integer);

end Q_MULTITHREADING;
Run Code Online (Sandbox Code Playgroud)

q_multithreading.adb:

with Ada.Text_IO;

package body Q_MULTITHREADING is

  V_ID_COUNTER : Integer := 1;

  --===========================================================================

  task body TASK_LOOP is

    V_ID : Integer := -1;

  begin

    V_ID := V_ID_COUNTER;
    V_ID_COUNTER := V_ID_COUNTER + 1;

    for i in …
Run Code Online (Sandbox Code Playgroud)

multithreading ada task

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

标签 统计

c++ ×2

ada ×1

arrays ×1

iterator ×1

java ×1

java-api ×1

multithreading ×1

qt ×1

regex ×1

stdmap ×1

task ×1