小编zen*_*gal的帖子

为什么要在C++中使用嵌套类?

有人可以指点我一些很好的资源来理解和使用嵌套类吗?我有一些材料,如编程原理和类似IBM知识中心 - 嵌套类的东西

但我仍然无法理解他们的目的.有人可以帮帮我吗?

c++ nested inner-classes

180
推荐指数
4
解决办法
17万
查看次数

如果哈希表中的键是一个类对象,那么containsKey是如何工作的?

当我们在哈希表中放置一个类Object(有三个数据成员)时,如何防止将另一个条目放入其密钥具有相同三个数据成员的哈希表中?我猜这将是一个新的对象.因此,即使有一个键(此类对象)具有与等待插入的数据成员完全相同的数据成员,hashtable.containsKey()也将返回false.

更清楚:我有一个类似的课程

class Triplet {
private Curr curr;
private Prev prev;
private Next next;
}
Run Code Online (Sandbox Code Playgroud)

我有一个哈希表结构,如:

Hashtable<Triplet, Integer> table = new Hashtable<Triplet, Integer>();
Run Code Online (Sandbox Code Playgroud)

当我做:

if(!table.containsKey(triplet_to_inserted))
table.put(triplet, new Integer(0));
Run Code Online (Sandbox Code Playgroud)

即使表中包含已具有相同数据成员的三元组,这是否会插入副本?即:triplet_to_be_inserted.curr,triplet_to_be_inserted.next和triplet_to_be_inserted.prev如果是,如何防止这种情况?

此外,对于要插入的任何条目,containsKey()是否会返回true?如何解决这个问题?

谢谢.

java oop hashtable

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

位移运算符

我遇到了这样一个编程面试问题.但对我来说,如何知道如何在这里使用位移是不明显的.有人好心解释.谢谢.

数组的大小为N,整数在0到1024之间(允许重复).另一个整数数组的大小为M,对数字没有限制.查找第一个数组中哪些元素存在于第二个数组中.(如果您正在使用额外的内存,请考虑使用按位运算符来最小化它)

我想知道现实世界中的bitshift运算符是什么意思.以及如何识别需要比特移位方法的问题.

谢谢桑杰

bit-shift bitwise-operators

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

使用fread读入int缓冲区

我想知道我是否可以使用fread将数据读入整数缓冲区.我看到fread()将void*作为第一个参数.所以我不能只传递一个整数缓冲区(类型转换为void*)然后使用它来读取我想要的文件中的howmuchevery字节,只要缓冲区足够大?

即.我无法做到:

  int buffer[10];
  fread((void *)buffer, sizeof(int), 10, somefile);
  // print contents of buffer
  for(int i = 0; i < 10; i++)
  cout << buffer[i] << endl;
Run Code Online (Sandbox Code Playgroud)

这有什么不对?

谢谢

c c++ buffer fread

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

是X const&x == X&const x?

我明白这X & const x是多余的.不行!但我想知道X const &x和之间的区别是X & const x什么?第一个表达式是说x是对常量的引用class X吗?

c++ const

0
推荐指数
3
解决办法
1176
查看次数

标签 统计

c++ ×3

bit-shift ×1

bitwise-operators ×1

buffer ×1

c ×1

const ×1

fread ×1

hashtable ×1

inner-classes ×1

java ×1

nested ×1

oop ×1