Sophie

Sophie

distrib > Fedora > 20 > x86_64 > by-pkgid > d9f573299e87e886807be879704f0b6e > files > 151

julia-doc-0.3.4-1.fc20.noarch.rpm




<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>Collections and Data Structures &mdash; Julia Language 0.3.4 documentation</title>
  

  
  

  
  <link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>

  
  
    

  

  
  
    <link rel="stylesheet" href="../_static/julia.css" type="text/css" />
  

  
    <link rel="stylesheet" href="../_static/julia.css" type="text/css" />
  
    <link rel="top" title="Julia Language 0.3.4 documentation" href="../index.html"/>
        <link rel="next" title="Graphics" href="graphics.html"/>
        <link rel="prev" title="Package Manager Functions" href="pkg.html"/> 

  
  <script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>

</head>

<body class="wy-body-for-nav" role="document">

  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-nav-search">
        <a href="http://julialang.org/"><img src="../_static/julia-logo.svg" class="logo"></a>
        <!--
        <a href="../index.html" class="fa fa-home"> Julia Language</a>
        -->
        <div role="search">
  <form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>
      </div>

      <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
        
        
            <ul>
<li class="toctree-l1"><a class="reference internal" href="../manual/introduction.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../manual/getting-started.html">Getting Started</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/getting-started.html#resources">Resources</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/variables.html">Variables</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/variables.html#allowed-variable-names">Allowed Variable Names</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/variables.html#stylistic-conventions">Stylistic Conventions</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/integers-and-floating-point-numbers.html">Integers and Floating-Point Numbers</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/integers-and-floating-point-numbers.html#integers">Integers</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/integers-and-floating-point-numbers.html#floating-point-numbers">Floating-Point Numbers</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/integers-and-floating-point-numbers.html#arbitrary-precision-arithmetic">Arbitrary Precision Arithmetic</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/integers-and-floating-point-numbers.html#numeric-literal-coefficients">Numeric Literal Coefficients</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/integers-and-floating-point-numbers.html#literal-zero-and-one">Literal zero and one</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/mathematical-operations.html">Mathematical Operations and Elementary Functions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/mathematical-operations.html#arithmetic-operators">Arithmetic Operators</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/mathematical-operations.html#bitwise-operators">Bitwise Operators</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/mathematical-operations.html#updating-operators">Updating operators</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/mathematical-operations.html#numeric-comparisons">Numeric Comparisons</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/mathematical-operations.html#elementary-functions">Elementary Functions</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/complex-and-rational-numbers.html">Complex and Rational Numbers</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/complex-and-rational-numbers.html#complex-numbers">Complex Numbers</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/complex-and-rational-numbers.html#rational-numbers">Rational Numbers</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/strings.html">Strings</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/strings.html#characters">Characters</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/strings.html#string-basics">String Basics</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/strings.html#unicode-and-utf-8">Unicode and UTF-8</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/strings.html#interpolation">Interpolation</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/strings.html#common-operations">Common Operations</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/strings.html#non-standard-string-literals">Non-Standard String Literals</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/strings.html#regular-expressions">Regular Expressions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/strings.html#id3">Byte Array Literals</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/strings.html#version-number-literals">Version Number Literals</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/functions.html">Functions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/functions.html#argument-passing-behavior">Argument Passing Behavior</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/functions.html#the-return-keyword">The <tt class="docutils literal"><span class="pre">return</span></tt> Keyword</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/functions.html#id1">Operators Are Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/functions.html#operators-with-special-names">Operators With Special Names</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/functions.html#anonymous-functions">Anonymous Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/functions.html#multiple-return-values">Multiple Return Values</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/functions.html#varargs-functions">Varargs Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/functions.html#optional-arguments">Optional Arguments</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/functions.html#keyword-arguments">Keyword Arguments</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/functions.html#evaluation-scope-of-default-values">Evaluation Scope of Default Values</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/functions.html#block-syntax-for-function-arguments">Block Syntax for Function Arguments</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/functions.html#further-reading">Further Reading</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/control-flow.html">Control Flow</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/control-flow.html#compound-expressions">Compound Expressions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/control-flow.html#conditional-evaluation">Conditional Evaluation</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/control-flow.html#short-circuit-evaluation">Short-Circuit Evaluation</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/control-flow.html#repeated-evaluation-loops">Repeated Evaluation: Loops</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/control-flow.html#exception-handling">Exception Handling</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/control-flow.html#tasks-aka-coroutines">Tasks (aka Coroutines)</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/variables-and-scoping.html">Scope of Variables</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/variables-and-scoping.html#for-loops-and-comprehensions">For Loops and Comprehensions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/variables-and-scoping.html#constants">Constants</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/types.html">Types</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/types.html#type-declarations">Type Declarations</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/types.html#abstract-types">Abstract Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/types.html#bits-types">Bits Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/types.html#composite-types">Composite Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/types.html#immutable-composite-types">Immutable Composite Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/types.html#declared-types">Declared Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/types.html#tuple-types">Tuple Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/types.html#type-unions">Type Unions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/types.html#man-parametric-types">Parametric Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/types.html#type-aliases">Type Aliases</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/types.html#operations-on-types">Operations on Types</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/methods.html">Methods</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/methods.html#defining-methods">Defining Methods</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/methods.html#method-ambiguities">Method Ambiguities</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/methods.html#parametric-methods">Parametric Methods</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/methods.html#note-on-optional-and-keyword-arguments">Note on Optional and keyword Arguments</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/constructors.html">Constructors</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/constructors.html#outer-constructor-methods">Outer Constructor Methods</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/constructors.html#inner-constructor-methods">Inner Constructor Methods</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/constructors.html#incomplete-initialization">Incomplete Initialization</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/constructors.html#parametric-constructors">Parametric Constructors</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/constructors.html#case-study-rational">Case Study: Rational</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/conversion-and-promotion.html">Conversion and Promotion</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/conversion-and-promotion.html#conversion">Conversion</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/conversion-and-promotion.html#promotion">Promotion</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/modules.html">Modules</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/modules.html#summary-of-module-usage">Summary of module usage</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/metaprogramming.html">Metaprogramming</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/metaprogramming.html#expressions-and-eval">Expressions and Eval</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/metaprogramming.html#macros">Macros</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/metaprogramming.html#reflection">Reflection</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/arrays.html">Multi-dimensional Arrays</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/arrays.html#arrays">Arrays</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/arrays.html#sparse-matrices">Sparse Matrices</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/linear-algebra.html">Linear algebra</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/linear-algebra.html#matrix-factorizations">Matrix factorizations</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/linear-algebra.html#special-matrices">Special matrices</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/networking-and-streams.html">Networking and Streams</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/networking-and-streams.html#basic-stream-i-o">Basic Stream I/O</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/networking-and-streams.html#text-i-o">Text I/O</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/networking-and-streams.html#working-with-files">Working with Files</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/networking-and-streams.html#a-simple-tcp-example">A simple TCP example</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/networking-and-streams.html#resolving-ip-addresses">Resolving IP Addresses</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/parallel-computing.html">Parallel Computing</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/parallel-computing.html#data-movement">Data Movement</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/parallel-computing.html#parallel-map-and-loops">Parallel Map and Loops</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/parallel-computing.html#synchronization-with-remote-references">Synchronization With Remote References</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/parallel-computing.html#scheduling">Scheduling</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/parallel-computing.html#distributed-arrays">Distributed Arrays</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/parallel-computing.html#constructing-distributed-arrays">Constructing Distributed Arrays</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/parallel-computing.html#distributed-array-operations">Distributed Array Operations</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/parallel-computing.html#shared-arrays-experimental">Shared Arrays (Experimental)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/parallel-computing.html#clustermanagers">ClusterManagers</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/running-external-programs.html">Running External Programs</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/running-external-programs.html#interpolation">Interpolation</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/running-external-programs.html#quoting">Quoting</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/running-external-programs.html#pipelines">Pipelines</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/calling-c-and-fortran-code.html">Calling C and Fortran Code</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/calling-c-and-fortran-code.html#mapping-c-types-to-julia">Mapping C Types to Julia</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/calling-c-and-fortran-code.html#accessing-data-through-a-pointer">Accessing Data through a Pointer</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/calling-c-and-fortran-code.html#passing-pointers-for-modifying-inputs">Passing Pointers for Modifying Inputs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/calling-c-and-fortran-code.html#garbage-collection-safety">Garbage Collection Safety</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/calling-c-and-fortran-code.html#non-constant-function-specifications">Non-constant Function Specifications</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/calling-c-and-fortran-code.html#indirect-calls">Indirect Calls</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/calling-c-and-fortran-code.html#calling-convention">Calling Convention</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/calling-c-and-fortran-code.html#accessing-global-variables">Accessing Global Variables</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/calling-c-and-fortran-code.html#passing-julia-callback-functions-to-c">Passing Julia Callback Functions to C</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/calling-c-and-fortran-code.html#c">C++</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/calling-c-and-fortran-code.html#handling-platform-variations">Handling Platform Variations</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/interacting-with-julia.html">Interacting With Julia</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/interacting-with-julia.html#the-different-prompt-modes">The different prompt modes</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/interacting-with-julia.html#key-bindings">Key bindings</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/embedding.html">Embedding Julia</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/embedding.html#high-level-embedding">High-Level Embedding</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/embedding.html#converting-types">Converting Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/embedding.html#calling-julia-functions">Calling Julia Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/embedding.html#memory-management">Memory Management</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/embedding.html#working-with-arrays">Working with Arrays</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/embedding.html#exceptions">Exceptions</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/packages.html">Packages</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/packages.html#package-status">Package Status</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/packages.html#adding-and-removing-packages">Adding and Removing Packages</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/packages.html#installing-unregistered-packages">Installing Unregistered Packages</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/packages.html#updating-packages">Updating Packages</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/packages.html#checkout-pin-and-free">Checkout, Pin and Free</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/packages.html#package-development">Package Development</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/packages.html#initial-setup">Initial Setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/packages.html#generating-a-new-package">Generating a New Package</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/packages.html#making-your-package-available">Making Your Package Available</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/packages.html#publishing-your-package">Publishing Your Package</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/packages.html#tagging-package-versions">Tagging Package Versions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/packages.html#fixing-package-requirements">Fixing Package Requirements</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/packages.html#man-package-requirements">Requirements Specification</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/performance-tips.html">Performance Tips</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/performance-tips.html#avoid-global-variables">Avoid global variables</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/performance-tips.html#measure-performance-with-time-and-pay-attention-to-memory-allocation">Measure performance with <tt class="docutils literal"><span class="pre">&#64;time</span></tt> and pay attention to memory allocation</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/performance-tips.html#tools">Tools</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/performance-tips.html#avoid-containers-with-abstract-type-parameters">Avoid containers with abstract type parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/performance-tips.html#type-declarations">Type declarations</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/performance-tips.html#break-functions-into-multiple-definitions">Break functions into multiple definitions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/performance-tips.html#write-type-stable-functions">Write &#8220;type-stable&#8221; functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/performance-tips.html#avoid-changing-the-type-of-a-variable">Avoid changing the type of a variable</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/performance-tips.html#separate-kernel-functions">Separate kernel functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/performance-tips.html#access-arrays-in-memory-order-along-columns">Access arrays in memory order, along columns</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/performance-tips.html#pre-allocating-outputs">Pre-allocating outputs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/performance-tips.html#avoid-string-interpolation-for-i-o">Avoid string interpolation for I/O</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/performance-tips.html#fix-deprecation-warnings">Fix deprecation warnings</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/performance-tips.html#tweaks">Tweaks</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/performance-tips.html#performance-annotations">Performance Annotations</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/style-guide.html">Style Guide</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/style-guide.html#write-functions-not-just-scripts">Write functions, not just scripts</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/style-guide.html#avoid-writing-overly-specific-types">Avoid writing overly-specific types</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/style-guide.html#handle-excess-argument-diversity-in-the-caller">Handle excess argument diversity in the caller</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/style-guide.html#append-to-names-of-functions-that-modify-their-arguments">Append <cite>!</cite> to names of functions that modify their arguments</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/style-guide.html#avoid-strange-type-unions">Avoid strange type Unions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/style-guide.html#try-to-avoid-nullable-fields">Try to avoid nullable fields</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/style-guide.html#avoid-elaborate-container-types">Avoid elaborate container types</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/style-guide.html#avoid-underscores-in-names">Avoid underscores in names</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/style-guide.html#don-t-overuse-try-catch">Don&#8217;t overuse try-catch</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/style-guide.html#don-t-parenthesize-conditions">Don&#8217;t parenthesize conditions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/style-guide.html#don-t-overuse">Don&#8217;t overuse ...</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/style-guide.html#don-t-use-unnecessary-static-parameters">Don&#8217;t use unnecessary static parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/style-guide.html#avoid-confusion-about-whether-something-is-an-instance-or-a-type">Avoid confusion about whether something is an instance or a type</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/style-guide.html#don-t-overuse-macros">Don&#8217;t overuse macros</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/style-guide.html#don-t-expose-unsafe-operations-at-the-interface-level">Don&#8217;t expose unsafe operations at the interface level</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/style-guide.html#don-t-overload-methods-of-base-container-types">Don&#8217;t overload methods of base container types</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/style-guide.html#be-careful-with-type-equality">Be careful with type equality</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/style-guide.html#do-not-write-x-f-x">Do not write <tt class="docutils literal"><span class="pre">x-&gt;f(x)</span></tt></a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/faq.html">Frequently Asked Questions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/faq.html#sessions-and-the-repl">Sessions and the REPL</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/faq.html#functions">Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/faq.html#types-type-declarations-and-constructors">Types, type declarations, and constructors</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/faq.html#nothingness-and-missing-values">Nothingness and missing values</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/faq.html#julia-releases">Julia Releases</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/faq.html#developing-julia">Developing Julia</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../manual/noteworthy-differences.html">Noteworthy Differences from other Languages</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../manual/noteworthy-differences.html#noteworthy-differences-from-matlab">Noteworthy differences from MATLAB</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/noteworthy-differences.html#noteworthy-differences-from-r">Noteworthy differences from R</a></li>
<li class="toctree-l2"><a class="reference internal" href="../manual/noteworthy-differences.html#noteworthy-differences-from-python">Noteworthy differences from Python</a></li>
</ul>
</li>
</ul>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="base.html">The Standard Library</a><ul>
<li class="toctree-l2"><a class="reference internal" href="base.html#introduction">Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#getting-around">Getting Around</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#all-objects">All Objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#types">Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#generic-functions">Generic Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#syntax">Syntax</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#iteration">Iteration</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#general-collections">General Collections</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#iterable-collections">Iterable Collections</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#indexable-collections">Indexable Collections</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#associative-collections">Associative Collections</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#set-like-collections">Set-Like Collections</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#dequeues">Dequeues</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#strings">Strings</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#i-o">I/O</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#network-i-o">Network I/O</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#text-i-o">Text I/O</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#multimedia-i-o">Multimedia I/O</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#memory-mapped-i-o">Memory-mapped I/O</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#standard-numeric-types">Standard Numeric Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#mathematical-operators">Mathematical Operators</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#mathematical-functions">Mathematical Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#data-formats">Data Formats</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#numbers">Numbers</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#bigfloats">BigFloats</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#random-numbers">Random Numbers</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#arrays">Arrays</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#combinatorics">Combinatorics</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#statistics">Statistics</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#signal-processing">Signal Processing</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#numerical-integration">Numerical Integration</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#parallel-computing">Parallel Computing</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#distributed-arrays">Distributed Arrays</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#shared-arrays-experimental-unix-only-feature">Shared Arrays (Experimental, UNIX-only feature)</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#system">System</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#c-interface">C Interface</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#errors">Errors</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#tasks">Tasks</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#events">Events</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#reflection">Reflection</a></li>
<li class="toctree-l2"><a class="reference internal" href="base.html#internals">Internals</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="sparse.html">Sparse Matrices</a></li>
<li class="toctree-l1"><a class="reference internal" href="linalg.html">Linear Algebra</a></li>
<li class="toctree-l1"><a class="reference internal" href="linalg.html#module-Base.LinAlg.BLAS">BLAS Functions</a></li>
<li class="toctree-l1"><a class="reference internal" href="constants.html">Constants</a></li>
<li class="toctree-l1"><a class="reference internal" href="file.html">Filesystem</a></li>
<li class="toctree-l1"><a class="reference internal" href="punctuation.html">Punctuation</a></li>
<li class="toctree-l1"><a class="reference internal" href="sort.html">Sorting and Related Functions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="sort.html#sorting-functions">Sorting Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="sort.html#order-related-functions">Order-Related Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="sort.html#sorting-algorithms">Sorting Algorithms</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="pkg.html">Package Manager Functions</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="">Collections and Data Structures</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#priorityqueue">PriorityQueue</a></li>
<li class="toctree-l2"><a class="reference internal" href="#heap-functions">Heap Functions</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="graphics.html">Graphics</a><ul>
<li class="toctree-l2"><a class="reference internal" href="graphics.html#geometry">Geometry</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="test.html">Unit and Functional Testing</a><ul>
<li class="toctree-l2"><a class="reference internal" href="test.html#overview">Overview</a></li>
<li class="toctree-l2"><a class="reference internal" href="test.html#handlers">Handlers</a></li>
<li class="toctree-l2"><a class="reference internal" href="test.html#macros">Macros</a></li>
<li class="toctree-l2"><a class="reference internal" href="test.html#functions">Functions</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="test.html#testing-base-julia">Testing Base Julia</a></li>
<li class="toctree-l1"><a class="reference internal" href="profile.html">Profiling</a><ul>
<li class="toctree-l2"><a class="reference internal" href="profile.html#basic-usage">Basic usage</a></li>
<li class="toctree-l2"><a class="reference internal" href="profile.html#accumulation-and-clearing">Accumulation and clearing</a></li>
<li class="toctree-l2"><a class="reference internal" href="profile.html#options-for-controlling-the-display-of-profile-results">Options for controlling the display of profile results</a></li>
<li class="toctree-l2"><a class="reference internal" href="profile.html#configuration">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="profile.html#function-reference">Function reference</a></li>
</ul>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../devdocs/julia.html">Documentation of Julia&#8217;s Internals</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../devdocs/cartesian.html">Base.Cartesian</a></li>
<li class="toctree-l2"><a class="reference internal" href="../devdocs/sysimg.html">System Image Building</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../devdocs/C.html">Developing/debugging Julia&#8217;s C code</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../devdocs/backtraces.html">Reporting and analyzing crashes (segfaults)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../devdocs/debuggingtips.html">gdb debugging tips</a></li>
</ul>
</li>
</ul>

        
      </div>
      &nbsp;
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
        <a href="../index.html">Julia Language</a>
      </nav>


      
      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="../index.html">Docs</a> &raquo;</li>
      
    <li>Collections and Data Structures</li>
      <li class="wy-breadcrumbs-aside">
        
          <a href="../_sources/stdlib/collections.txt" rel="nofollow"> View page source</a>
        
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document">
            
  <span class="target" id="module-Base.Collections"></span><div class="section" id="collections-and-data-structures">
<h1>Collections and Data Structures<a class="headerlink" href="#collections-and-data-structures" title="Permalink to this headline">¶</a></h1>
<p>The <tt class="docutils literal"><span class="pre">Collections</span></tt> module contains implementations of some common data
structures.</p>
<div class="section" id="priorityqueue">
<h2>PriorityQueue<a class="headerlink" href="#priorityqueue" title="Permalink to this headline">¶</a></h2>
<p>The <tt class="docutils literal"><span class="pre">PriorityQueue</span></tt> type is a basic priority queue implementation allowing for
arbitrary key and priority types. Multiple identical keys are not permitted, but
the priority of existing keys can be changed efficiently.</p>
<dl class="function">
<dt id="Base.Collections.PriorityQueue{K,V}">
<tt class="descname">PriorityQueue{K,V}</tt><big>(</big><span class="optional">[</span><em>ord</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Base.Collections.PriorityQueue{K,V}" title="Permalink to this definition">¶</a></dt>
<dd><p>Construct a new PriorityQueue, with keys of type K and values/priorites of
type V. If an order is not given, the priority queue is min-ordered using
the default comparison for V.</p>
</dd></dl>

<dl class="function">
<dt id="Base.Collections.enqueue!">
<tt class="descname">enqueue!</tt><big>(</big><em>pq</em>, <em>k</em>, <em>v</em><big>)</big><a class="headerlink" href="#Base.Collections.enqueue!" title="Permalink to this definition">¶</a></dt>
<dd><p>Insert the a key <tt class="docutils literal"><span class="pre">k</span></tt> into a priority queue <tt class="docutils literal"><span class="pre">pq</span></tt> with priority <tt class="docutils literal"><span class="pre">v</span></tt>.</p>
</dd></dl>

<dl class="function">
<dt id="Base.Collections.dequeue!">
<tt class="descname">dequeue!</tt><big>(</big><em>pq</em><big>)</big><a class="headerlink" href="#Base.Collections.dequeue!" title="Permalink to this definition">¶</a></dt>
<dd><p>Remove and return the lowest priority key from a priority queue.</p>
</dd></dl>

<dl class="function">
<dt id="Base.Collections.peek">
<tt class="descname">peek</tt><big>(</big><em>pq</em><big>)</big><a class="headerlink" href="#Base.Collections.peek" title="Permalink to this definition">¶</a></dt>
<dd><p>Return the lowest priority key from a priority queue without removing that key from the queue.</p>
</dd></dl>

<p><tt class="docutils literal"><span class="pre">PriorityQueue</span></tt> also behaves similarly to a <tt class="docutils literal"><span class="pre">Dict</span></tt> so that keys can be
inserted and priorities accessed or changed using indexing notation:</p>
<div class="highlight-julia"><div class="highlight"><pre><span class="c"># Julia code</span>
<span class="n">pq</span> <span class="o">=</span> <span class="n">PriorityQueue</span><span class="p">()</span>

<span class="c"># Insert keys with associated priorities</span>
<span class="n">pq</span><span class="p">[</span><span class="s">&quot;a&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">10</span>
<span class="n">pq</span><span class="p">[</span><span class="s">&quot;b&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">5</span>
<span class="n">pq</span><span class="p">[</span><span class="s">&quot;c&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">15</span>

<span class="c"># Change the priority of an existing key</span>
<span class="n">pq</span><span class="p">[</span><span class="s">&quot;a&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">0</span>
</pre></div>
</div>
</div>
<div class="section" id="heap-functions">
<h2>Heap Functions<a class="headerlink" href="#heap-functions" title="Permalink to this headline">¶</a></h2>
<p>Along with the <tt class="docutils literal"><span class="pre">PriorityQueue</span></tt> type are lower level functions for performing
binary heap operations on arrays. Each function takes an optional ordering
argument. If not given, default ordering is used, so that elements popped from
the heap are given in ascending order.</p>
<dl class="function">
<dt id="Base.Collections.heapify">
<tt class="descname">heapify</tt><big>(</big><em>v</em><span class="optional">[</span>, <em>ord</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Base.Collections.heapify" title="Permalink to this definition">¶</a></dt>
<dd><p>Return a new vector in binary heap order, optionally using the given
ordering.</p>
</dd></dl>

<dl class="function">
<dt id="Base.Collections.heapify!">
<tt class="descname">heapify!</tt><big>(</big><em>v</em><span class="optional">[</span>, <em>ord</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Base.Collections.heapify!" title="Permalink to this definition">¶</a></dt>
<dd><p>In-place heapify.</p>
</dd></dl>

<dl class="function">
<dt id="Base.Collections.isheap">
<tt class="descname">isheap</tt><big>(</big><em>v</em><span class="optional">[</span>, <em>ord</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Base.Collections.isheap" title="Permalink to this definition">¶</a></dt>
<dd><p>Return true iff an array is heap-ordered according to the given order.</p>
</dd></dl>

<dl class="function">
<dt id="Base.Collections.heappush!">
<tt class="descname">heappush!</tt><big>(</big><em>v</em>, <em>x</em><span class="optional">[</span>, <em>ord</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Base.Collections.heappush!" title="Permalink to this definition">¶</a></dt>
<dd><p>Given a binary heap-ordered array, push a new element <tt class="docutils literal"><span class="pre">x</span></tt>, preserving the heap
property. For efficiency, this function does not check that the array is
indeed heap-ordered.</p>
</dd></dl>

<dl class="function">
<dt id="Base.Collections.heappop!">
<tt class="descname">heappop!</tt><big>(</big><em>v</em><span class="optional">[</span>, <em>ord</em><span class="optional">]</span><big>)</big><a class="headerlink" href="#Base.Collections.heappop!" title="Permalink to this definition">¶</a></dt>
<dd><p>Given a binary heap-ordered array, remove and return the lowest ordered
element. For efficiency, this function does not check that the array is
indeed heap-ordered.</p>
</dd></dl>

</div>
</div>


          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="graphics.html" class="btn btn-neutral float-right" title="Graphics"/>Next <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <a href="pkg.html" class="btn btn-neutral" title="Package Manager Functions"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <p>
    </p>
  </div>

  <a href="https://github.com/snide/sphinx_rtd_theme">Sphinx theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>
</footer>
        </div>
      </div>

    </section>

  </div>
  

  

    <script type="text/javascript">
        var DOCUMENTATION_OPTIONS = {
            URL_ROOT:'../',
            VERSION:'0.3.4',
            COLLAPSE_INDEX:false,
            FILE_SUFFIX:'.html',
            HAS_SOURCE:  true
        };
    </script>
      <script type="text/javascript" src="../_static/jquery.js"></script>
      <script type="text/javascript" src="../_static/underscore.js"></script>
      <script type="text/javascript" src="../_static/doctools.js"></script>
      <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>

  

  
  
    <script type="text/javascript" src="../_static/js/theme.js"></script>
  

  
  
  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.StickyNav.enable();
      });
  </script>
   

</body>
</html>