Git Product home page Git Product logo

stanford-cpp-library's Introduction

stanford-cpp-library

Source code and resources for the C++ libraries used by Stanford CS106B course. This code written by Eric Roberts and Marty Stepp and currently maintained by Julie Zelenski and Keith Schwarz.

Many thanks to Prof. Jeff Lutgen (jlutgen) of Whittier College, who has submitted several useful pull requests and new features to the libraries.

stanford-cpp-library's People

Contributors

catzhang avatar htiek avatar jlutgen avatar seansz avatar stepp avatar yexiaoxing avatar zelenski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stanford-cpp-library's Issues

Errors on macOS font loading

Running code using the libraries on macOS generates warning messages about missing font aliases that display to stderr. Surprisingly, these seem to happen even for installed fonts like Didot and Monaco. I'm not sure whether this is

  • an issue with Qt 6,
  • an issue with our libraries, or
  • an issue with my Old School MacBook Air.

Either way, it would be good to track this down and fix it; this warning message is concerning to students even though it's not their fault.

Qt problem

When I create a HashMap, it told me that

xxxx/StanfordCPPLib/collections/collections.h:32:10: fatal error: gmath.h: No such file or directory
 #include "gmath.h"
          ^~~~~~~~~
compilation terminated.

when I copy the "gmath.h" from the util/ folder to collections/, the other "random.h", "strlib.h", "gtypes.h" and so on come one by one. Definitely, I can either copy the file into the folder or change the relative path. But I have I no idea how to deal with the "#include " since I cannot find it anywhere...

Continuous Integration?

hey @stepp! I wanted to ask if there were plans to set up testing / CI for the libraries here? I noticed a script pack-lib-into-single-cpp-file.sh and inferred that is that how the final library is packaged for the homeworks?

What do you think about having some kind of continuous integration set up (and this could run tests and run this particular script to deploy.) I think it would be really fun to learn how to write modular tests for a larger library like this, even if we just start with very simple ones.

Qt 5.11 Win32 Path issue

xcopy ${QMAKE_FILE_IN} will fail because the path is not correct. Consider use something like:

win32:COPY_RESOURCE_FILES_INPUT ~= s,/,\\,g
copy_resource_files.input = $$COPY_RESOURCE_FILES_INPUT
copy_resource_files.output = $${OUT_PWD}/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT}
copy_resource_files.CONFIG = no_link no_clean target_predeps

Maybe this is just a rpoblem for my platform. Haven't tested on other Windows computer.

errors when building the project: can not create files or directories

when building the project BothLibraryWelcome, i have encountered an error : can not create files or directories like the picture, the details are listed below:

can not create directories or files。
can not create directories or files。
mingw32-make[2]: *** [Makefile.Release:11488: install_target] Error 1
mingw32-make[2]: *** Waiting for unfinished jobs....
mingw32-make[2]: *** [Makefile.Release:11497: install_headers] Error 1

D:\Qt\6.2.2\mingw_64\bin\qmake.exe -install qinstall D:\CS\Cpp\stanford-cpp-library-master\Library\personaltypes.py d:\Qt\Tools\QtCreator\share\qtcreator\debugger\personaltypes.py
mingw32-make[2]: Leaving directory 'D:/CS/Cpp/build-BothLibraryWelcome-Desktop_Qt_6_2_2_MinGW_64_bit-Debug/Library'
mingw32-make[1]: Leaving directory 'D:/CS/Cpp/build-BothLibraryWelcome-Desktop_Qt_6_2_2_MinGW_64_bit-Debug/Library'
mingw32-make[1]: *** [Makefile:56: release-install] Error 2
mingw32-make: *** [Makefile:51: sub-Library-make_first-ordered] Error 2
21:26:31: 进程"D:\Qt\Tools\mingw1120_64\bin\mingw32-make.exe"退出,退出代码 2 。
Error while building/deploying project BothLibraryWelcome (kit: Desktop Qt 6.2.2 MinGW 64-bit)
When executing step "Make"

Is JBEConsole.java open sourced?

The source code file JBEConsole.java can only be found in the decompiled directory. But due to the decompiling, the code in that directory is messy, some even contains errors.

Is it possible to open source this file as well?

Trigger cleaner `static_assert` errors for missing comparison operators

The Set<T> and Map<T, V> types will report nice static_assert errors to students if T is not a comparable type. However, the relative comparison operators between Vector<T>, which can only operate if T is comparable, do not trigger these sorts of static_asserts. There is a lovely and helpful message at the spot in the template code where instantiation fails, but it can easily be missed by students in a wall of template errors when that happens.

dawglexicon: readBinaryFile() failed to read file from istream

Error:

***
*** STANFORD C++ LIBRARY 
*** An ErrorException occurred during program execution: 
*** DawgLexicon::addWordsFromFile: Improperly formed lexicon file
***
*** Stack trace (line numbers are approximate):
*** in empty-project  error(const string&)
*** in empty-project  DawgLexicon::readBinaryFile(istream&)
*** in empty-project  DawgLexicon::addWordsFromFile(istream&)
*** in empty-project  DawgLexicon::DawgLexicon(istream&)
*** in empty-project  DawgLexicon::DawgLexicon(istream&)
*** in empty-project  Lexicon::readBinaryFile(istream&)
*** in empty-project  Lexicon::addWordsFromFile(istream&)
*** in empty-project  Lexicon::addWordsFromFile(const string&)
*** in empty-project  Lexicon::Lexicon(const string&)
*** in empty-project  Lexicon::Lexicon(const string&)
*** in empty-project  main()
***
libc++abi.dylib: terminate_handler unexpectedly threw an exception
The program has unexpectedly finished.

readBinaryFile() (https://github.com/stepp/stanford-cpp-library/blob/master/StanfordCPPLib/collections/dawglexicon.cpp#L414) should seek from the beginning. But in addWordsFromFile() (https://github.com/stepp/stanford-cpp-library/blob/master/StanfordCPPLib/collections/dawglexicon.cpp#L140) the function reads the first 4 chars, leading to the error.

segfault: GKeyEvent(GEvent) constructor

Some of the GXXXEvent(GEvent) constructors don't copy the gwd pointer, so calling getGWindow() on the constructed object returns a garbage pointer.

Small example that produces a segmentation fault when user types in graphics window:

#include <iostream>
#include "console.h"
#include "gevents.h"
#include "gwindow.h"

using namespace std;

int main() {
    GWindow gw;
    gw.setWindowTitle("Key Event Test");
    gw.add(new GLabel("Click in here and type!", 20, 20));
    cout << "Ready." << endl;
    while (true) {
        GEvent e = waitForEvent();
        EventType type = e.getEventType();
        if (e.getEventClass() == KEY_EVENT) {
            GKeyEvent ke(e); // "private" (i.e., undocumented) constructor, but still ...
            std::cout << e.toString() << std::endl;
            cout << "Key event: " << ke.toString() << endl;
            cout << "Window: " << ke.getGWindow().getWindowTitle() << endl;
        }
    }
    return 0;
}

XCopy Fixes not present in MadLibs.pro, QMAKE_COPY not recursive

First, the change to QMAKE_COPY is not present in the first homework assignment. I'm not sure how that system works, but thought you should know.

Second, when the QMAKE_COPY is used, it fails to copy recursively. replacing with QMAKE_COPY_DIR worked for me, but no idea how this would effect standard windows environments.

Tim

Add SFINAE overloading to `Set` and `HashSet` constructor

At present, the Set and HashSet types layer on top of GenericSet and forward template arguments to GenericSet. In the case where those template arguments would result in an instantiation error, the constructors are still selected in overload resolution and lead to weird error messages during instantiation. A better solution would be to use std::enable_if etc. to disable those constructors unless arguments of the proper types are provided.

(This isn't purely hypothetical; when implementing Optional<T> for my CS106B offering, I ran into a weird overload selection issue that required some special-casing for the Set type.)

parseActionEvent fails when parsing GSlider events

If a GSlider has been assigned an action command via setActionCommand, a bug in parseActionEvent causes a crash when sliding the slider:

*** STANFORD C++ LIBRARY 
*** An ErrorException occurred during program execution: 
*** TokenScanner::verifyToken: Found ")" when expecting ","
input = "actionPerformed("0x7fcb52f00060", "slidey", 1489717353800)"
***
*** Stack trace (line numbers are approximate):
*** in jl-tests  error(const string&)
*** in jl-tests  TokenScanner::verifyToken(const string&)
*** in jl-tests  parseActionEvent(TokenScanner&, EventType)
*** in jl-tests  parseEvent(const string&)
*** in jl-tests  getResult(bool, bool, const string&)
*** in jl-tests  stanfordcpplib::Platform::gevent_waitForEvent(int)
*** in jl-tests  waitForEvent(int)
*** in jl-tests  main()
***

Minimal example:

#include "gevents.h"
#include "ginteractors.h"
#include "gwindow.h"

int main()
{
    GWindow gw;
    GSlider *slider = new GSlider();
    slider->setActionCommand("slidey");
    gw.addToRegion(slider, "SOUTH");
    while (true)
        GEvent e = waitForEvent();
    return 0;
}

Minor nits to someday correct

simpio.h: documentation for use of reprompt says when "file not found" when should be "value not integer" or whatever
vector.h: misspelling ErrorExceptoin
note.c: misspelling ilegal

Add default constructor to `GRectangle`

The GRectangle type currently has no default constructor, so it's not possible to declare a variable of type GRectangle without an initializer (e.g. GRectangle rect; does not compile). This is a consequence of this earlier commit that fixed a separate issue whereby GRectangle could be initialized to a double or without all the needed initializers.

Inconsistency between `readEntireFile` overloads and `readEntireStream` overloads.

Currently, there are two versions of the readEntireFile function. One takes in the name of a file and returns a std::string with the contents. The other takes in a filename and a Vector<string>&, then populates the Vector<string>.

There's also a readEntireStream function. It has two overloads. One returns a string containing the contents of the file. The other takes in a string by reference and overwrites it with the contents of the stream.

We should consider making these functions more consistent with one another. Perhaps all versions should work with Vector<string>? Or, alternatively, maybe we should remove the ones that take reference parameters and have them just return strings? From there the client could stringSplit them apart if that's what they want.

Try avoiding unnecessary copy constructions

when handling strings, the library makes quite a lot extra copy constructions. Some basic improvements:

  • when passing string by value in constructors, please use std::move before assign it to the class field.
  • please notice that for (std::string i : container) will copy-construct a string in each iteration. There are many cases in the library (for example, see system/exception.h) that using a const reference is enough. As the library is to be shown to students, I guess better practice is needed to apply here.
  • string_view can be used if you just want to access some slices (C++17).

GRect overrides final method `paint` and `scale`

The JavaBackEnd/eclipseproject/src/acm/graphics/GObject.java declares paint as a final method, while the JavaTaskForce/src/acm/graphics/GRect.java inheriting from GObject implements the paint method again.

Am I using mismatched versions of these files? Did I miss anything?

Rewrite assignment operators using newer idioms

Our current assignment operator implementations use this general idiom:

 Object& operator =(const Object& rhs) {
     if (this != &other) {
         clear();
         deepCopy(other);
     }
     return *this;
  }

This has a few drawbacks:

  1. It's not exception-safe. If something bad happens during the copy step, the internal state is corrupted.
  2. It requires the logic for performing a deep copy to be factored out of the copy constructor.
  3. It doesn't play well with move semantics.

The more modern C++ approach is to write an assignment operator like this:

Object& operator =(Object rhs) {
    swap(*this, rhs);
    return *this;
 }

This "construct-and-swap" idiom just requires the definition of a swap function that does a memberwise swap and lets the compiler decide whether to construct the argument using copy semantics or move semantics. There's no need to factor the copy logic out of the constructor.

error: call to function 'stringIsInteger' that is neither visible in the template definition nor found by argument-dependent lookup writeGenericValue(os, node->name, stringIsInteger(node->name) || stringIsReal(node->name));

I got this error when trying to make a basic graph.

OS info
MacOSX10.14.5

Code

#include <iostream>
#include "basicgraph.h"


using namespace std;

int main() {

    BasicGraph g;
    g.addVertex("a");
    g.addVertex("b");
    g.addEdge("a", "b");
    cout << g << endl;
    return 0;
}

Error Log

In file included from ../sample-project/src/hello.cpp:3:
In file included from ../sample-project/lib/StanfordCPPLib/collections/basicgraph.h:87:
../sample-project/lib/StanfordCPPLib/collections/graph.h:1584:43: error: call to function 'stringIsInteger' that is neither visible in the template definition nor found by argument-dependent lookup
writeGenericValue(os, node->name, stringIsInteger(node->name) || stringIsReal(node->name));
^
../sample-project/src/hello.cpp:14:10: note: in instantiation of function template specialization 'operator<<<VertexGen<void *, void *>, EdgeGen<void *, void *> >' requested here
cout << g << endl;
^
../sample-project/lib/StanfordCPPLib/util/strlib.h:237:6: note: 'stringIsInteger' should be declared prior to the call site
bool stringIsInteger(const std::string& str, int radix = 10);
^
In file included from ../sample-project/src/hello.cpp:3:
In file included from ../sample-project/lib/StanfordCPPLib/collections/basicgraph.h:87:
../sample-project/lib/StanfordCPPLib/collections/graph.h:1584:74: error: call to function 'stringIsReal' that is neither visible in the template definition nor found by argument-dependent lookup
writeGenericValue(os, node->name, stringIsInteger(node->name) || stringIsReal(node->name));
^
../sample-project/lib/StanfordCPPLib/util/strlib.h:252:6: note: 'stringIsReal' should be declared prior to the call site
bool stringIsReal(const std::string& str);
^
In file included from ../sample-project/src/hello.cpp:3:
In file included from ../sample-project/lib/StanfordCPPLib/collections/basicgraph.h:87:
../sample-project/lib/StanfordCPPLib/collections/graph.h:1590:49: error: call to function 'stringIsInteger' that is neither visible in the template definition nor found by argument-dependent lookup
writeGenericValue(os, arc->start->name, stringIsInteger(arc->start->name) || stringIsReal(arc->start->name));
^
../sample-project/lib/StanfordCPPLib/util/strlib.h:237:6: note: 'stringIsInteger' should be declared prior to the call site
bool stringIsInteger(const std::string& str, int radix = 10);
^
In file included from ../sample-project/src/hello.cpp:3:
In file included from ../sample-project/lib/StanfordCPPLib/collections/basicgraph.h:87:
../sample-project/lib/StanfordCPPLib/collections/graph.h:1590:86: error: call to function 'stringIsReal' that is neither visible in the template definition nor found by argument-dependent lookup
writeGenericValue(os, arc->start->name, stringIsInteger(arc->start->name) || stringIsReal(arc->start->name));
^
../sample-project/lib/StanfordCPPLib/util/strlib.h:252:6: note: 'stringIsReal' should be declared prior to the call site
bool stringIsReal(const std::string& str);
^
In file included from ../sample-project/src/hello.cpp:3:
In file included from ../sample-project/lib/StanfordCPPLib/collections/basicgraph.h:87:
../sample-project/lib/StanfordCPPLib/collections/graph.h:1592:50: error: call to function 'stringIsInteger' that is neither visible in the template definition nor found by argument-dependent lookup
writeGenericValue(os, arc->finish->name, stringIsInteger(arc->finish->name) || stringIsReal(arc->finish->name));
^
../sample-project/lib/StanfordCPPLib/util/strlib.h:237:6: note: 'stringIsInteger' should be declared prior to the call site
bool stringIsInteger(const std::string& str, int radix = 10);
^
In file included from ../sample-project/src/hello.cpp:3:
In file included from ../sample-project/lib/StanfordCPPLib/collections/basicgraph.h:87:
../sample-project/lib/StanfordCPPLib/collections/graph.h:1592:88: error: call to function 'stringIsReal' that is neither visible in the template definition nor found by argument-dependent lookup
writeGenericValue(os, arc->finish->name, stringIsInteger(arc->finish->name) || stringIsReal(arc->finish->name));
^
../sample-project/lib/StanfordCPPLib/util/strlib.h:252:6: note: 'stringIsReal' should be declared prior to the call site
bool stringIsReal(const std::string& str);
^
6 errors generated.
make: *** [hello.o] Error 1
13:42:54: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project sample-project (kit: Desktop Qt 5.12.4 clang 64bit)
When executing step "Make"

error: Cannot reduce the visibility of the inherited method from Program

Location:
Karel->src->KarelProgram.java
in code lines 253 and 278 give me the same error:"Cannot reduce the visibility of the inherited method from Program".
loadConfiguration() and saveConfiguration() are underlined with red.

253 private void loadConfiguration() {...
278 private void saveConfiguration() {...

editing private for public gives error "Cannot override the final method from Program".

This problem makes the whole Karel library obsolete. New java program, that extends Karel or SuperKarel, cannot run, showing error "Could not find or load main class (name of new program)".
i am new to Github, I hope it is the right place to write about it.

ARRAY_LENGTH can be calculated during compilation

For stack-allocated array, we actually have no need to do extra calculation in runtime.

template <typename T, size_t Size>
constexpr size_t array_length(T (&)[Size]) {
    return Size;
}

// macro to get the length of a stack-allocated array
#define ARRAY_LENGTH(a) array_length((a))

Use Stanford c++ library into cmakelist.txt

Hello,
Thank you for the great library. I want to use this library in CLion and add it into cmakelist.txt file. I use:

file(GLOB SOURCES
StanfordCPPLib/collections/.h
StanfordCPPLib/collections/
.cpp
StanfordCPPLib/graphics/.h
StanfordCPPLib/graphics/
.cpp
StanfordCPPLib/io/.h
StanfordCPPLib/io/cpp
StanfordCPPLib/private/
.h
StanfordCPPLib/private/
.cpp
StanfordCPPLib/system/.h
StanfordCPPLib/system/
.cpp
StanfordCPPLib/util/.h
StanfordCPPLib/util/
.cpp
)

add_executable(myproject ${SOURCES})

But when I for example include strlib.h in my code, It says that : private/init.h: No such file or directory.

Do you have any idea how to make it work?

Thanks

Add `operator+` overload for `T` and `Vector<T>`

Currently, you can write vec + elem to get back a new Vector that consists of all the elements of vec with elem appended to the. end. However, the reverse elem + vec does not compile. We should consider adding an overload of operator+ that addresses this.

memoryLeak caught by Google Address sanitizer

hell@ubuntu(~/shelterDataStuctAlgo/stanfordCPPlib):(master) ./asan
cost: 0 name: s
s --- t
s --- y
cost: 5 name: y
y --- t
y --- x
y --- z
cost: 7 name: z
z --- s
z --- x
cost: 8 name: t
t --- x
t --- y
cost: 9 name: x
x --- z

==9740==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 16 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:12]
[frame=2, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=3, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:394:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 16 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:12]
[frame=2, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=3, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:398:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 16 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:12]
[frame=2, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=3, function=Graph<Vertex, Edge>::Graph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:67:5]
[frame=4, function=BasicGraph::BasicGraph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:236:7]
[frame=5, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:420:16]
[frame=6, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=7, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=8, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=9, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 16 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:12]
[frame=2, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=3, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:396:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 16 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Vertex*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:12]
[frame=2, function=Set<Vertex*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=3, function=Graph<Vertex, Edge>::Graph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:67:5]
[frame=4, function=BasicGraph::BasicGraph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:236:7]
[frame=5, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:420:16]
[frame=6, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=7, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=8, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=9, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 16 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:12]
[frame=2, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=3, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:395:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 16 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:12]
[frame=2, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=3, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:397:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 5 byte(s) in 5 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Vertex*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Vertex*, bool>::Map<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:750:20]
[frame=3, function=Set<Vertex*>::Set<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:353:41]
[frame=4, function=Graph<Vertex, Edge>::getNeighbors(Vertex*) const, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/././StanfordCPPLib/graph.h:696:28]
[frame=5, function=Dijkstra(BasicGraph&, Vertex*), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:384:26]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:414:5]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::clone(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:396:24]
[frame=3, function=Map<Edge*, bool>::deepCopy(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:719:46]
[frame=4, function=Map<Edge*, bool>::operator=(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:779:13]
[frame=5, function=Set<Edge*>::operator=(Set<Edge*> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:33:7]
[frame=6, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:16]
[frame=7, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=8, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:397:18]
[frame=9, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=10, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=11, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=12, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=13, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Vertex*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Vertex*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::clone(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:396:24]
[frame=3, function=Map<Vertex*, bool>::deepCopy(Map<Vertex*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:719:46]
[frame=4, function=Map<Vertex*, bool>::operator=(Map<Vertex*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:779:13]
[frame=5, function=Set<Vertex*>::operator=(Set<Vertex*> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:33:7]
[frame=6, function=Graph<Vertex, Edge>::Graph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:518:11]
[frame=7, function=BasicGraph::BasicGraph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:236:7]
[frame=8, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:420:16]
[frame=9, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=10, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=11, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=12, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:750:20]
[frame=3, function=Set<Edge*>::Set<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:353:41]
[frame=4, function=Graph<Vertex, Edge>::Graph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:519:12]
[frame=5, function=BasicGraph::BasicGraph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:236:7]
[frame=6, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:420:16]
[frame=7, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=8, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=9, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=10, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:750:20]
[frame=3, function=Set<Edge*>::Set<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:353:41]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:18]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:396:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::clone(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:396:24]
[frame=3, function=Map<Edge*, bool>::deepCopy(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:719:46]
[frame=4, function=Map<Edge*, bool>::operator=(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:779:13]
[frame=5, function=Set<Edge*>::operator=(Set<Edge*> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:33:7]
[frame=6, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:16]
[frame=7, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=8, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:398:18]
[frame=9, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=10, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=11, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=12, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=13, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::clone(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:396:24]
[frame=3, function=Map<Edge*, bool>::deepCopy(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:719:46]
[frame=4, function=Map<Edge*, bool>::operator=(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:779:13]
[frame=5, function=Set<Edge*>::operator=(Set<Edge*> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:33:7]
[frame=6, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:16]
[frame=7, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=8, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:395:18]
[frame=9, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=10, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=11, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=12, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=13, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::clone(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:396:24]
[frame=3, function=Map<Edge*, bool>::deepCopy(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:719:46]
[frame=4, function=Map<Edge*, bool>::operator=(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:779:13]
[frame=5, function=Set<Edge*>::operator=(Set<Edge*> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:33:7]
[frame=6, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:16]
[frame=7, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=8, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:396:18]
[frame=9, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=10, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=11, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=12, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=13, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:750:20]
[frame=3, function=Set<Edge*>::Set<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:353:41]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:18]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:398:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > >::TemplateComparator<std::__1::less<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > >::TemplateComparator(std::__1::less<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > >), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > >::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=__cxx_global_var_init, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/server.cpp:19:38]
[frame=4, function=_GLOBAL__sub_I_server.cpp, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/server.cpp]
[frame=5, function=__libc_csu_init, location=]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::clone(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:396:24]
[frame=3, function=Map<Edge*, bool>::deepCopy(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:719:46]
[frame=4, function=Map<Edge*, bool>::operator=(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:779:13]
[frame=5, function=Set<Edge*>::operator=(Set<Edge*> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:33:7]
[frame=6, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:16]
[frame=7, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=8, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:394:18]
[frame=9, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=10, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=11, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=12, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=13, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:750:20]
[frame=3, function=Set<Edge*>::Set<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:353:41]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:18]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:397:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:750:20]
[frame=3, function=Set<Edge*>::Set<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:353:41]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:18]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:394:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:750:20]
[frame=3, function=Set<Edge*>::Set<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:353:41]
[frame=4, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:593:18]
[frame=5, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=6, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:395:18]
[frame=7, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=8, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=9, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=10, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=11, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::clone(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:396:24]
[frame=3, function=Map<Edge*, bool>::deepCopy(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:719:46]
[frame=4, function=Map<Edge*, bool>::operator=(Map<Edge*, bool> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:779:13]
[frame=5, function=Set<Edge*>::operator=(Set<Edge*> const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:33:7]
[frame=6, function=Graph<Vertex, Edge>::Graph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:519:10]
[frame=7, function=BasicGraph::BasicGraph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:236:7]
[frame=8, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:420:16]
[frame=9, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=10, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=11, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=12, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<int, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > >::TemplateComparatorstd::__1::less::TemplateComparator(std::__1::less), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<int, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > >::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=__cxx_global_var_init.4, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/server.cpp:22:30]
[frame=4, function=_GLOBAL__sub_I_server.cpp, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/server.cpp]
[frame=5, function=__libc_csu_init, location=]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Vertex*, bool>::TemplateComparatorstd::__1::less<Vertex* >::TemplateComparator(std::__1::less<Vertex*>), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Vertex*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=Set<Vertex*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=4, function=Dijkstra(BasicGraph&, Vertex*), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:365:18]
[frame=5, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:414:5]
[frame=6, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=7, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=8, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=9, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=10, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Vertex*, bool>::TemplateComparator<Graph<Vertex, Edge>::GraphComparator>::TemplateComparator(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Vertex*, bool>::Map<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:750:20]
[frame=3, function=Set<Vertex*>::Set<Graph<Vertex, Edge>::GraphComparator>(Graph<Vertex, Edge>::GraphComparator), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:353:41]
[frame=4, function=Graph<Vertex, Edge>::Graph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:518:13]
[frame=5, function=BasicGraph::BasicGraph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:236:7]
[frame=6, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:420:16]
[frame=7, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=8, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=9, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=10, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, Vertex*>::TemplateComparator<std::__1::less<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > >::TemplateComparator(std::__1::less<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > >), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, Vertex*>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=Graph<Vertex, Edge>::Graph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:67:5]
[frame=4, function=BasicGraph::BasicGraph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:236:7]
[frame=5, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:420:16]
[frame=6, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=7, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=8, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=9, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Direct leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, int>::TemplateComparator<std::__1::less<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > > >::TemplateComparator(std::__1::less<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > >), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator >, int>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=__cxx_global_var_init, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/gwindow.cpp:87:30]
[frame=4, function=_GLOBAL__sub_I_gwindow.cpp, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/gwindow.cpp]
[frame=5, function=__libc_csu_init, location=]

Indirect leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Vertex*, bool>::TemplateComparatorstd::__1::less<Vertex* >::TemplateComparator(std::__1::less<Vertex*>), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Vertex*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=Set<Vertex*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=4, function=Graph<Vertex, Edge>::Graph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:67:5]
[frame=5, function=BasicGraph::BasicGraph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:236:7]
[frame=6, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:420:16]
[frame=7, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=8, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=9, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=10, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Indirect leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparatorstd::__1::less<Edge* >::TemplateComparator(std::__1::less<Edge*>), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=4, function=Graph<Vertex, Edge>::Graph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:67:5]
[frame=5, function=BasicGraph::BasicGraph(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:236:7]
[frame=6, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:420:16]
[frame=7, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=8, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=9, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=10, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Indirect leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparatorstd::__1::less<Edge* >::TemplateComparator(std::__1::less<Edge*>), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=4, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=5, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=6, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=7, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:396:18]
[frame=8, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=9, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=10, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=11, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=12, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Indirect leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparatorstd::__1::less<Edge* >::TemplateComparator(std::__1::less<Edge*>), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=4, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=5, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=6, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=7, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:394:18]
[frame=8, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=9, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=10, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=11, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=12, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Indirect leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparatorstd::__1::less<Edge* >::TemplateComparator(std::__1::less<Edge*>), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=4, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=5, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=6, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=7, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:395:18]
[frame=8, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=9, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=10, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=11, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=12, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Indirect leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparatorstd::__1::less<Edge* >::TemplateComparator(std::__1::less<Edge*>), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=4, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=5, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=6, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=7, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:397:18]
[frame=8, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=9, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=10, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=11, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=12, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

Indirect leak of 1 byte(s) in 1 object(s) allocated from:
[frame=0, function=operator new(unsigned long), location=/home/ben/development/llvm/3.8.1/final/llvm.src/projects/compiler-rt/lib/asan/asan_new_delete.cc:62:35]
[frame=1, function=Map<Edge*, bool>::TemplateComparatorstd::__1::less<Edge* >::TemplateComparator(std::__1::less<Edge*>), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:388:25]
[frame=2, function=Map<Edge*, bool>::Map(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/map.h:904:16]
[frame=3, function=Set<Edge*>::Set(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/set.h:41:5]
[frame=4, function=Vertex::Vertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:33:9]
[frame=5, function=Graph<Vertex, Edge>::addNode(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/graph.h:592:26]
[frame=6, function=BasicGraph::addVertex(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/basicgraph.cpp:404:12]
[frame=7, function=testDIJKSTRA(BasicGraph&), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:398:18]
[frame=8, function=Main(), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:424:5]
[frame=9, function=Main(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/main.cpp:23:12]
[frame=10, function=mainWrapper(int, char**), location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/StanfordCPPLib/startup.cpp:32:16]
[frame=11, function=main, location=/home/hell/shelterDataStuctAlgo/stanfordCPPlib/myProg.cpp:418:5]
[frame=12, function=__libc_start_main, location=/build/glibc-GKVZIf/glibc-2.23/csu/../csu/libc-start.c:291]

SUMMARY: AddressSanitizer: 143 byte(s) leaked in 38 allocation(s).
hell@ubuntu(~/shelterDataStuctAlgo/stanfordCPPlib):(master)

premature EOF when reading DawgLexicon file

My copy of EnglishWords.dat (a lexicon data file in the DAWG format) contains the byte 1A at position 0x80 (fairly early in the file, in one of the first few edge structs). When using an istream's read() to read data from a file opened in "text" mode on Windows, 1A is treated as an end-of-file marker, unfortunately, so input.read((char*) edges, numBytes) in DawgLexicon::readBinaryFile(std::istream& input) does not read all numBytes bytes. This leads to a segmentation fault in DawgLexicon::countDawgWords(Edge* ep).

My fix is to pass in the std::ios::binary flag when opening files in Lexicon::addWordsFromFile(string &filename) and in DawgLexicon::addWordsFromFile(string &filename).

Unexpected behavior of `const` overload of `Map::operator[]`

The Map type has a const overload of operator[] that will not perform auto-insertion of a key/value pair. The current signature for this function is

ValueType Map<K, V>::operator [](const KeyType& key) const;

There are two issues with this:

  1. The associated ValueType in the Map is returned by value. This means that it is slower to invoke operator[] on a const Map than on a non-const Map. The rationale for this decision is that it allows the Map to return a value rather than a reference when the key is not in the Map, but when working with a large or complex Map this is a big performance hit.
  2. The returned ValueType is not marked const, which means that it's possible to say things like myConstMap[key] = value; when ValueType is an object like a string or Vector. This code compiles and appears to update the Map, but has no effect.

A proposed solution: change the return type of this function to const ValueType&. To handle the case where the associated key is not present, inside the Map, add a std::unique_ptr<ValueType> that is lazily initialized to point to a ValueType object when needed. Returning a const reference to the ValueType will then satisfy all the requirements of the function contract while avoiding the two above issues.

`Grid<T>::locations()` appears nonempty for 0 x m and n x 0 grids.

The Grid<T>::locations() function returns a GridLocationRange spanning the whole Grid. If the Grid has dimension m x 0 or 0 x n, the GridLocationRange will appear nonempty and looping over its contents will produce indices that are out of range. Therefore, code like this may crash:

Grid<T> grid(0, 4);
for (GridLocation loc: grid.locations()) {
    cout << grid[loc] << endl;
}

The expected behavior here would be to have the loop not visit any locations.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.