本文整理汇总了C++中LinkedHashMap::size方法的典型用法代码示例。如果您正苦于以下问题:C++ LinkedHashMap::size方法的具体用法?C++ LinkedHashMap::size怎么用?C++ LinkedHashMap::size使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LinkedHashMap
的用法示例。
在下文中一共展示了LinkedHashMap::size方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: testRemove
void LinkedHashMapTest::testRemove() {
{
LinkedHashMap<int, std::string> hashMap;
populateMap(hashMap);
int size = hashMap.size();
CPPUNIT_ASSERT_NO_THROW_MESSAGE("Remove returned incorrect value", hashMap.remove(9));
CPPUNIT_ASSERT_THROW_MESSAGE(
"Should have thrown a NoSuchElementException on get of non-existent key.",
hashMap.get(9),
NoSuchElementException);
CPPUNIT_ASSERT_MESSAGE("Failed to decrement size", hashMap.size() == (size - 1));
CPPUNIT_ASSERT_THROW_MESSAGE(
"Should have thrown a NoSuchElementException on remove of non-existent key.",
hashMap.remove(9),
NoSuchElementException);
}
{
LinkedHashMap<int, std::string> hashMap;
for (int i = 0; i < 8192; i++) {
hashMap.put(i, "const");
}
for (int i = 0; i < 8192; i++) {
hashMap.put(i, Integer::toString(i));
}
for (int i = 8191; i >= 0; i--) {
std::string iValue = Integer::toString(i);
CPPUNIT_ASSERT_MESSAGE(std::string("Failed to replace value: ") + iValue,
hashMap.containsValue(iValue));
hashMap.remove(i);
CPPUNIT_ASSERT_MESSAGE(std::string("Failed to remove same value: ") + iValue,
!hashMap.containsValue(iValue));
}
}
{
// Ensure keys with identical hashcode are stored separately and removed correctly.
LinkedHashMap<MyKey, std::string> map;
// Put non-equal object with same hashcode
MyKey aKey;
CPPUNIT_ASSERT(!map.containsKey(aKey));
map.put(aKey, "value");
MyKey aKey2;
CPPUNIT_ASSERT_THROW_MESSAGE(
"Should have thrown NoSuchElementException",
map.remove(aKey2),
NoSuchElementException);
MyKey aKey3;
map.put(aKey3, "foobar");
CPPUNIT_ASSERT_EQUAL(std::string("foobar"), map.get(aKey3));
CPPUNIT_ASSERT_EQUAL(std::string("value"), map.get(aKey));
map.remove(aKey);
map.remove(aKey3);
CPPUNIT_ASSERT(!map.containsKey(aKey));
CPPUNIT_ASSERT(map.isEmpty());
}
}
示例2: testClear
void LinkedHashMapTest::testClear() {
LinkedHashMap<int, std::string> hashMap;
hashMap.put(1, "one");
hashMap.put(3, "three");
hashMap.put(2, "two");
hashMap.clear();
CPPUNIT_ASSERT_EQUAL_MESSAGE("Clear failed to reset size", 0, hashMap.size());
for (int i = 0; i < 125; i++) {
CPPUNIT_ASSERT_THROW_MESSAGE(
"Failed to clear all elements",
hashMap.get(i),
NoSuchElementException);
}
// Check clear on a large loaded map of Integer keys
LinkedHashMap<int, std::string> map;
for (int i = -32767; i < 32768; i++) {
map.put(i, "foobar");
}
map.clear();
CPPUNIT_ASSERT_EQUAL_MESSAGE("Failed to reset size on large integer map", 0, map.size());
for (int i = -32767; i < 32768; i++) {
CPPUNIT_ASSERT_THROW_MESSAGE(
"Failed to clear all elements",
map.get(i),
NoSuchElementException);
}
}
示例3:
TEST(LinkedHashmapTest, Erase)
{
LinkedHashMap<string, int> map;
map["foo"] = 1;
map["bar"] = 2;
ASSERT_EQ(2, map.size());
ASSERT_EQ(1, map.erase("foo"));
ASSERT_EQ(0, map.erase("caz")); // Non-existent key.
ASSERT_NONE(map.get("foo"));
ASSERT_EQ(1, map.size());
ASSERT_SOME_EQ(2, map.get("bar"));
}
示例4: testOrderedEntrySet
void LinkedHashMapTest::testOrderedEntrySet() {
int i;
int size = 100;
{
LinkedHashMap<int, std::string> map;
populateMap(map, size);
Set<MapEntry<int, std::string> >& set = map.entrySet();
Pointer< Iterator<MapEntry<int, std::string> > > iter(set.iterator());
CPPUNIT_ASSERT_MESSAGE("Returned set of incorrect size 1", map.size() == set.size());
for (i = 0; iter->hasNext(); i++) {
MapEntry<int, std::string> entry = iter->next();
int key = entry.getKey();
CPPUNIT_ASSERT_MESSAGE("Returned incorrect entry set 1", key == i);
}
}
LinkedHashMap<int, std::string> map2(200, .75f, true);
populateMap(map2, size);
Set<MapEntry<int, std::string> >& set = map2.entrySet();
Pointer< Iterator<MapEntry<int, std::string> > > iter(set.iterator());
CPPUNIT_ASSERT_MESSAGE("Returned set of incorrect size 2", map2.size() == set.size());
for (i = 0; i < size && iter->hasNext(); i++) {
MapEntry<int, std::string> entry = iter->next();
int key = entry.getKey();
CPPUNIT_ASSERT_MESSAGE("Returned incorrect entry set 2", key == i);
}
/* fetch the even numbered entries to affect traversal order */
int p = 0;
for (i = 0; i < size; i += 2) {
std::string ii = map2.get(i);
p = p + Integer::parseInt(ii);
}
CPPUNIT_ASSERT_EQUAL_MESSAGE("invalid sum of even numbers", 2450, p);
set = map2.entrySet();
iter.reset(set.iterator());
CPPUNIT_ASSERT_MESSAGE("Returned set of incorrect size 3", map2.size() == set.size());
for (i = 1; i < size && iter->hasNext(); i += 2) {
MapEntry<int, std::string> entry = iter->next();
int key = entry.getKey();
CPPUNIT_ASSERT_EQUAL_MESSAGE("Returned incorrect entry set 3", key, i);
}
for (i = 0; i < size && iter->hasNext(); i += 2) {
MapEntry<int, std::string> entry = iter->next();
int key = entry.getKey();
CPPUNIT_ASSERT_EQUAL_MESSAGE("Returned incorrect entry set 4", key, i);
}
CPPUNIT_ASSERT_MESSAGE("Entries left to iterate on", !iter->hasNext());
}
示例5: testOrderedValues
void LinkedHashMapTest::testOrderedValues() {
int i;
int size = 100;
{
LinkedHashMap<int, int> map;
for (i = 0; i < size; i++) {
map.put(i, i * 2);
}
Collection<int>& set = map.values();
Pointer< Iterator<int> > iter(set.iterator());
CPPUNIT_ASSERT_MESSAGE("Returned set of incorrect size 1", map.size() == set.size());
for (i = 0; iter->hasNext(); i++) {
int value = iter->next();
CPPUNIT_ASSERT_EQUAL_MESSAGE("Returned incorrect values set 1", value, i * 2);
}
}
LinkedHashMap<int, int> map2(200, .75f, true);
for (i = 0; i < size; i++) {
map2.put(i, i * 2);
}
Collection<int>& set = map2.values();
Pointer< Iterator<int> > iter(set.iterator());
CPPUNIT_ASSERT_MESSAGE("Returned set of incorrect size 2", map2.size() == set.size());
for (i = 0; i < size && iter->hasNext(); i++) {
int value = iter->next();
CPPUNIT_ASSERT_EQUAL_MESSAGE("Returned incorrect values set 2", value, i * 2);
}
/* fetch the even numbered entries to affect traversal order */
int p = 0;
for (i = 0; i < size; i += 2) {
p = p + map2.get(i);
}
CPPUNIT_ASSERT_EQUAL_MESSAGE("invalid sum of even numbers", 2450 * 2, p);
set = map2.values();
iter.reset(set.iterator());
CPPUNIT_ASSERT_MESSAGE("Returned set of incorrect size 3", map2.size() == set.size());
for (i = 1; i < size && iter->hasNext(); i += 2) {
int value = iter->next();
CPPUNIT_ASSERT_EQUAL_MESSAGE("Returned incorrect values set 3", value, i * 2);
}
for (i = 0; i < size && iter->hasNext(); i += 2) {
int value = iter->next();
CPPUNIT_ASSERT_EQUAL_MESSAGE("Returned incorrect values set 4", value, i * 2);
}
CPPUNIT_ASSERT_MESSAGE("Entries left to iterate on", !iter->hasNext());
}
示例6: testValues
void LinkedHashMapTest::testValues() {
LinkedHashMap<int, std::string> hashMap;
populateMap(hashMap);
Collection<std::string>& c = hashMap.values();
CPPUNIT_ASSERT_MESSAGE("Returned collection of incorrect size()", c.size() == hashMap.size());
for (int i = 0; i < MAP_SIZE; i++) {
CPPUNIT_ASSERT_MESSAGE("Returned collection does not contain all keys",
c.contains(Integer::toString(i)));
}
c.remove("10");
CPPUNIT_ASSERT_MESSAGE("Removing from collection should alter Map",
!hashMap.containsKey(10));
}
示例7: testEntrySet
void LinkedHashMapTest::testEntrySet() {
LinkedHashMap<int, std::string> hashMap;
for (int i = 0; i < 50; i++) {
hashMap.put(i, Integer::toString(i));
}
Set<MapEntry<int, std::string> >& set = hashMap.entrySet();
Pointer< Iterator<MapEntry<int, std::string> > > iterator(set.iterator());
CPPUNIT_ASSERT_MESSAGE("Returned set of incorrect size", hashMap.size() == set.size());
while (iterator->hasNext()) {
MapEntry<int, std::string> entry = iterator->next();
CPPUNIT_ASSERT_MESSAGE("Returned incorrect entry set",
hashMap.containsKey(entry.getKey()) && hashMap.containsValue(entry.getValue()));
}
iterator.reset(set.iterator());
set.remove(iterator->next());
CPPUNIT_ASSERT_EQUAL_MESSAGE("Remove on set didn't take", 49, set.size());
}
示例8: testConstructor
void LinkedHashMapTest::testConstructor() {
LinkedHashMap<int, std::string> map;
CPPUNIT_ASSERT(map.isEmpty());
CPPUNIT_ASSERT(map.size() == 0);
}
示例9: testSize
void LinkedHashMapTest::testSize() {
LinkedHashMap<int, std::string> hashMap;
populateMap(hashMap);
CPPUNIT_ASSERT_MESSAGE("Returned incorrect size", hashMap.size() == MAP_SIZE);
}
示例10: testKeySet
void LinkedHashMapTest::testKeySet() {
LinkedHashMap<int, std::string> hashMap;
populateMap(hashMap);
Set<int>& set = hashMap.keySet();
CPPUNIT_ASSERT_MESSAGE("Returned set of incorrect size()", set.size() == hashMap.size());
for (int i = 0; i < MAP_SIZE; i++) {
CPPUNIT_ASSERT_MESSAGE("Returned set does not contain all keys", set.contains(i));
}
{
LinkedHashMap<int, std::string> localMap;
localMap.put(0, "test");
Set<int>& intSet = localMap.keySet();
CPPUNIT_ASSERT_MESSAGE("Failed with zero key", intSet.contains(0));
}
{
LinkedHashMap<int, std::string> localMap;
localMap.put(1, "1");
localMap.put(102, "102");
localMap.put(203, "203");
Set<int>& intSet = localMap.keySet();
Pointer< Iterator<int> > it(intSet.iterator());
int remove1 = it->next();
it->hasNext();
it->remove();
int remove2 = it->next();
it->remove();
ArrayList<int> list;
list.add(1);
list.add(102);
list.add(203);
list.remove(remove1);
list.remove(remove2);
CPPUNIT_ASSERT_MESSAGE("Wrong result", it->next() == list.get(0));
CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong size", 1, localMap.size());
it.reset(intSet.iterator());
CPPUNIT_ASSERT_MESSAGE("Wrong contents", it->next() == list.get(0));
}
{
LinkedHashMap<int, std::string> map2(101);
map2.put(1, "1");
map2.put(4, "4");
Set<int>& intSet = map2.keySet();
Pointer< Iterator<int> > it2(intSet.iterator());
int remove3 = it2->next();
int next;
if (remove3 == 1) {
next = 4;
} else {
next = 1;
}
it2->hasNext();
it2->remove();
CPPUNIT_ASSERT_MESSAGE("Wrong result 2", it2->next() == next);
CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong size 2", 1, map2.size());
it2.reset(intSet.iterator());
CPPUNIT_ASSERT_MESSAGE("Wrong contents 2", it2->next() == next);
}
}