Sophie

Sophie

distrib > Mageia > 6 > armv5tl > media > core-release > by-pkgid > 3a4e91bde08970529a0aa07935652fe8 > files > 377

icu-doc-58.2-3.mga6.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>ICU 58.2: icu::CollationKey Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">ICU 58.2
   &#160;<span id="projectnumber">58.2</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceicu.html">icu</a></li><li class="navelem"><a class="el" href="classicu_1_1CollationKey.html">CollationKey</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#friends">Friends</a>  </div>
  <div class="headertitle">
<div class="title">icu::CollationKey Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Collation keys are generated by the <a class="el" href="classicu_1_1Collator.html" title="The Collator class performs locale-sensitive string comparison. ">Collator</a> class.  
 <a href="classicu_1_1CollationKey.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="sortkey_8h_source.html">sortkey.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for icu::CollationKey:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classicu_1_1CollationKey.png" usemap="#icu::CollationKey_map" alt=""/>
  <map id="icu::CollationKey_map" name="icu::CollationKey_map">
<area href="classicu_1_1UObject.html" title="UObject is the common ICU &quot;boilerplate&quot; class. " alt="icu::UObject" shape="rect" coords="0,56,106,80"/>
<area href="classicu_1_1UMemory.html" title="UMemory is the common ICU base class. " alt="icu::UMemory" shape="rect" coords="0,0,106,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:abca92dc37f5a3202815dfd07a0f404ff"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CollationKey.html#abca92dc37f5a3202815dfd07a0f404ff">CollationKey</a> ()</td></tr>
<tr class="memdesc:abca92dc37f5a3202815dfd07a0f404ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">This creates an empty collation key based on the null string.  <a href="#abca92dc37f5a3202815dfd07a0f404ff">More...</a><br /></td></tr>
<tr class="separator:abca92dc37f5a3202815dfd07a0f404ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa41763b6bcf56a0cb10fff00aa0da039"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CollationKey.html#aa41763b6bcf56a0cb10fff00aa0da039">CollationKey</a> (const uint8_t *values, int32_t count)</td></tr>
<tr class="memdesc:aa41763b6bcf56a0cb10fff00aa0da039"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a collation key based on the collation key values.  <a href="#aa41763b6bcf56a0cb10fff00aa0da039">More...</a><br /></td></tr>
<tr class="separator:aa41763b6bcf56a0cb10fff00aa0da039"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f4bc5da09ccd4f2157002c87d7ac1cb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CollationKey.html#a3f4bc5da09ccd4f2157002c87d7ac1cb">CollationKey</a> (const <a class="el" href="classicu_1_1CollationKey.html">CollationKey</a> &amp;other)</td></tr>
<tr class="memdesc:a3f4bc5da09ccd4f2157002c87d7ac1cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor.  <a href="#a3f4bc5da09ccd4f2157002c87d7ac1cb">More...</a><br /></td></tr>
<tr class="separator:a3f4bc5da09ccd4f2157002c87d7ac1cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b24b0443f4d54dd4c0539ea4694820c"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CollationKey.html#a2b24b0443f4d54dd4c0539ea4694820c">~CollationKey</a> ()</td></tr>
<tr class="memdesc:a2b24b0443f4d54dd4c0539ea4694820c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sort key destructor.  <a href="#a2b24b0443f4d54dd4c0539ea4694820c">More...</a><br /></td></tr>
<tr class="separator:a2b24b0443f4d54dd4c0539ea4694820c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac49d8912e6b5f9414ae7aadfa27e5fc8"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classicu_1_1CollationKey.html">CollationKey</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CollationKey.html#ac49d8912e6b5f9414ae7aadfa27e5fc8">operator=</a> (const <a class="el" href="classicu_1_1CollationKey.html">CollationKey</a> &amp;other)</td></tr>
<tr class="memdesc:ac49d8912e6b5f9414ae7aadfa27e5fc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator.  <a href="#ac49d8912e6b5f9414ae7aadfa27e5fc8">More...</a><br /></td></tr>
<tr class="separator:ac49d8912e6b5f9414ae7aadfa27e5fc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a222b7356f225601403d2a53d03978e70"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CollationKey.html#a222b7356f225601403d2a53d03978e70">operator==</a> (const <a class="el" href="classicu_1_1CollationKey.html">CollationKey</a> &amp;source) const </td></tr>
<tr class="memdesc:a222b7356f225601403d2a53d03978e70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare if two collation keys are the same.  <a href="#a222b7356f225601403d2a53d03978e70">More...</a><br /></td></tr>
<tr class="separator:a222b7356f225601403d2a53d03978e70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12db9002ebace3662250092bb6d38bde"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CollationKey.html#a12db9002ebace3662250092bb6d38bde">operator!=</a> (const <a class="el" href="classicu_1_1CollationKey.html">CollationKey</a> &amp;source) const </td></tr>
<tr class="memdesc:a12db9002ebace3662250092bb6d38bde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare if two collation keys are not the same.  <a href="#a12db9002ebace3662250092bb6d38bde">More...</a><br /></td></tr>
<tr class="separator:a12db9002ebace3662250092bb6d38bde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4427f8fd43d01dafe3adcec31105fa0a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CollationKey.html#a4427f8fd43d01dafe3adcec31105fa0a">isBogus</a> (void) const </td></tr>
<tr class="memdesc:a4427f8fd43d01dafe3adcec31105fa0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test to see if the key is in an invalid state.  <a href="#a4427f8fd43d01dafe3adcec31105fa0a">More...</a><br /></td></tr>
<tr class="separator:a4427f8fd43d01dafe3adcec31105fa0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c16b4644df8212bf03fab6ad8e1c752"><td class="memItemLeft" align="right" valign="top">const uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CollationKey.html#a6c16b4644df8212bf03fab6ad8e1c752">getByteArray</a> (int32_t &amp;count) const </td></tr>
<tr class="memdesc:a6c16b4644df8212bf03fab6ad8e1c752"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to the collation key values.  <a href="#a6c16b4644df8212bf03fab6ad8e1c752">More...</a><br /></td></tr>
<tr class="separator:a6c16b4644df8212bf03fab6ad8e1c752"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a171f495a64dc8bc0cebdfcf5c93980"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classicu_1_1Collator.html#ac9827be018f594eae0573473034233b7">Collator::EComparisonResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CollationKey.html#a7a171f495a64dc8bc0cebdfcf5c93980">compareTo</a> (const <a class="el" href="classicu_1_1CollationKey.html">CollationKey</a> &amp;target) const </td></tr>
<tr class="memdesc:a7a171f495a64dc8bc0cebdfcf5c93980"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience method which does a string(bit-wise) comparison of the two collation keys.  <a href="#a7a171f495a64dc8bc0cebdfcf5c93980">More...</a><br /></td></tr>
<tr class="separator:a7a171f495a64dc8bc0cebdfcf5c93980"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4aaf9f6ddac5e3cb698cd27efbfa425"><td class="memItemLeft" align="right" valign="top"><a class="el" href="ucol_8h.html#a8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CollationKey.html#af4aaf9f6ddac5e3cb698cd27efbfa425">compareTo</a> (const <a class="el" href="classicu_1_1CollationKey.html">CollationKey</a> &amp;target, <a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;status) const </td></tr>
<tr class="memdesc:af4aaf9f6ddac5e3cb698cd27efbfa425"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience method which does a string(bit-wise) comparison of the two collation keys.  <a href="#af4aaf9f6ddac5e3cb698cd27efbfa425">More...</a><br /></td></tr>
<tr class="separator:af4aaf9f6ddac5e3cb698cd27efbfa425"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21473876fe309e115c83b882fe7dc5aa"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CollationKey.html#a21473876fe309e115c83b882fe7dc5aa">hashCode</a> (void) const </td></tr>
<tr class="memdesc:a21473876fe309e115c83b882fe7dc5aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an integer that is unique to the collation key.  <a href="#a21473876fe309e115c83b882fe7dc5aa">More...</a><br /></td></tr>
<tr class="separator:a21473876fe309e115c83b882fe7dc5aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaced6bf2b5e3e8b7f2b876ca14980c3e"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="uobject_8h.html#a22af10545208a455a6e884008df48e9f">UClassID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CollationKey.html#aaced6bf2b5e3e8b7f2b876ca14980c3e">getDynamicClassID</a> () const </td></tr>
<tr class="memdesc:aaced6bf2b5e3e8b7f2b876ca14980c3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">ICU "poor man's RTTI", returns a UClassID for the actual class.  <a href="#aaced6bf2b5e3e8b7f2b876ca14980c3e">More...</a><br /></td></tr>
<tr class="separator:aaced6bf2b5e3e8b7f2b876ca14980c3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classicu_1_1UObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classicu_1_1UObject')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classicu_1_1UObject.html">icu::UObject</a></td></tr>
<tr class="memitem:af10026497704f510d3d1f2eff50acb18 inherit pub_methods_classicu_1_1UObject"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1UObject.html#af10026497704f510d3d1f2eff50acb18">~UObject</a> ()</td></tr>
<tr class="memdesc:af10026497704f510d3d1f2eff50acb18 inherit pub_methods_classicu_1_1UObject"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#af10026497704f510d3d1f2eff50acb18">More...</a><br /></td></tr>
<tr class="separator:af10026497704f510d3d1f2eff50acb18 inherit pub_methods_classicu_1_1UObject"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:aa18953913575f713f4d76452cc8ee002"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="uobject_8h.html#a22af10545208a455a6e884008df48e9f">UClassID</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CollationKey.html#aa18953913575f713f4d76452cc8ee002">getStaticClassID</a> ()</td></tr>
<tr class="memdesc:aa18953913575f713f4d76452cc8ee002"><td class="mdescLeft">&#160;</td><td class="mdescRight">ICU "poor man's RTTI", returns a UClassID for this class.  <a href="#aa18953913575f713f4d76452cc8ee002">More...</a><br /></td></tr>
<tr class="separator:aa18953913575f713f4d76452cc8ee002"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a1918e53ed4bb8208fdd6df3ed4ec2548"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1918e53ed4bb8208fdd6df3ed4ec2548"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CollationKey.html#a1918e53ed4bb8208fdd6df3ed4ec2548">RuleBasedCollator</a></td></tr>
<tr class="memdesc:a1918e53ed4bb8208fdd6df3ed4ec2548"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow private access to <a class="el" href="classicu_1_1RuleBasedCollator.html" title="The RuleBasedCollator class provides the implementation of Collator, using data-driven tables...">RuleBasedCollator</a>. <br /></td></tr>
<tr class="separator:a1918e53ed4bb8208fdd6df3ed4ec2548"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a662b535af7127c0a09c1df2f442f6501"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a662b535af7127c0a09c1df2f442f6501"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>CollationKeyByteSink</b></td></tr>
<tr class="separator:a662b535af7127c0a09c1df2f442f6501"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Collation keys are generated by the <a class="el" href="classicu_1_1Collator.html" title="The Collator class performs locale-sensitive string comparison. ">Collator</a> class. </p>
<p>Use the <a class="el" href="classicu_1_1CollationKey.html" title="Collation keys are generated by the Collator class. ">CollationKey</a> objects instead of <a class="el" href="classicu_1_1Collator.html" title="The Collator class performs locale-sensitive string comparison. ">Collator</a> to compare strings multiple times. A <a class="el" href="classicu_1_1CollationKey.html" title="Collation keys are generated by the Collator class. ">CollationKey</a> preprocesses the comparison information from the <a class="el" href="classicu_1_1Collator.html" title="The Collator class performs locale-sensitive string comparison. ">Collator</a> object to make the comparison faster. If you are not going to comparing strings multiple times, then using the <a class="el" href="classicu_1_1Collator.html" title="The Collator class performs locale-sensitive string comparison. ">Collator</a> object is generally faster, since it only processes as much of the string as needed to make a comparison. </p>
<p>For example (with strength == tertiary) </p>
<p>When comparing "Abernathy" to "Baggins-Smythworthy", <a class="el" href="classicu_1_1Collator.html" title="The Collator class performs locale-sensitive string comparison. ">Collator</a> only needs to process a couple of characters, while a comparison with CollationKeys will process all of the characters. On the other hand, if you are doing a sort of a number of fields, it is much faster to use CollationKeys, since you will be comparing strings multiple times. </p>
<p>Typical use of CollationKeys are in databases, where you store a <a class="el" href="classicu_1_1CollationKey.html" title="Collation keys are generated by the Collator class. ">CollationKey</a> in a hidden field, and use it for sorting or indexing.</p>
<p>Example of use: </p><pre>
<div class="fragment"><div class="line"><a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> success = <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78caa43dbfc9499c5f911d04e1a0ca3bf6f9">U_ZERO_ERROR</a>;</div><div class="line">Collator* myCollator = <a class="code" href="classicu_1_1Collator.html#a4e6fdf681aa52573ef5ad0a0bd22eb97">Collator::createInstance</a>(success);</div><div class="line"><a class="code" href="classicu_1_1CollationKey.html#abca92dc37f5a3202815dfd07a0f404ff">CollationKey</a>* keys = <span class="keyword">new</span> <a class="code" href="classicu_1_1CollationKey.html#abca92dc37f5a3202815dfd07a0f404ff">CollationKey</a> [3];</div><div class="line">myCollator-&gt;getCollationKey(<span class="stringliteral">&quot;Tom&quot;</span>, keys[0], success );</div><div class="line">myCollator-&gt;getCollationKey(<span class="stringliteral">&quot;Dick&quot;</span>, keys[1], success );</div><div class="line">myCollator-&gt;getCollationKey(<span class="stringliteral">&quot;Harry&quot;</span>, keys[2], success );</div><div class="line"></div><div class="line"><span class="comment">// Inside body of sort routine, compare keys this way:</span></div><div class="line"><a class="code" href="classicu_1_1CollationKey.html#abca92dc37f5a3202815dfd07a0f404ff">CollationKey</a> tmp;</div><div class="line"><span class="keywordflow">if</span>(keys[0].<a class="code" href="classicu_1_1CollationKey.html#a7a171f495a64dc8bc0cebdfcf5c93980">compareTo</a>( keys[1] ) &gt; 0 ) {</div><div class="line">    tmp = keys[0]; keys[0] = keys[1]; keys[1] = tmp;</div><div class="line">}</div><div class="line"><span class="comment">//...</span></div></div><!-- fragment -->
</pre> <p>Because <a class="el" href="classicu_1_1Collator.html#a844bcb05f66aeaf17b2c52d8d7294d1d" title="The comparison function compares the character data stored in two different strings. ">Collator::compare()</a>'s algorithm is complex, it is faster to sort long lists of words by retrieving collation keys with <a class="el" href="classicu_1_1Collator.html#ad1e3bebe6e3ae7bd79cce7f2cf9f4ab1" title="Transforms the string into a series of characters that can be compared with CollationKey::compareTo. ">Collator::getCollationKey()</a>. You can then cache the collation keys and compare them using <a class="el" href="classicu_1_1CollationKey.html#a7a171f495a64dc8bc0cebdfcf5c93980" title="Convenience method which does a string(bit-wise) comparison of the two collation keys. ">CollationKey::compareTo()</a>. </p>
<p><b>Note:</b> <code><a class="el" href="classicu_1_1Collator.html" title="The Collator class performs locale-sensitive string comparison. ">Collator</a></code>s with different <a class="el" href="classicu_1_1Locale.html" title="A Locale object represents a specific geographical, political, or cultural region. ">Locale</a>, CollationStrength and DecompositionMode settings will return different CollationKeys for the same set of strings. Locales have specific collation rules, and the way in which secondary and tertiary differences are taken into account, for example, will result in different CollationKeys for same strings. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classicu_1_1Collator.html" title="The Collator class performs locale-sensitive string comparison. ">Collator</a> </dd>
<dd>
<a class="el" href="classicu_1_1RuleBasedCollator.html" title="The RuleBasedCollator class provides the implementation of Collator, using data-driven tables...">RuleBasedCollator</a> </dd></dl>
<dl class="section version"><dt>Version</dt><dd>1.3 12/18/96 </dd></dl>
<dl class="section author"><dt>Author</dt><dd>Helena Shih </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004410">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>Definition at line <a class="el" href="sortkey_8h_source.html#l00099">99</a> of file <a class="el" href="sortkey_8h_source.html">sortkey.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="abca92dc37f5a3202815dfd07a0f404ff"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">icu::CollationKey::CollationKey </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This creates an empty collation key based on the null string. </p>
<p>An empty collation key contains no sorting information. When comparing two empty collation keys, the result is Collator::EQUAL. Comparing empty collation key with non-empty collation key is always Collator::LESS. </p><dl class="stable"><dt><b><a class="el" href="stable.html#_stable004411">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="aa41763b6bcf56a0cb10fff00aa0da039"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">icu::CollationKey::CollationKey </td>
          <td>(</td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>values</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Creates a collation key based on the collation key values. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">values</td><td>the collation key values </td></tr>
    <tr><td class="paramname">count</td><td>number of collation key values, including trailing nulls. </td></tr>
  </table>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004412">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a3f4bc5da09ccd4f2157002c87d7ac1cb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">icu::CollationKey::CollationKey </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1CollationKey.html">CollationKey</a> &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">other</td><td>the object to be copied. </td></tr>
  </table>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004413">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a2b24b0443f4d54dd4c0539ea4694820c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual icu::CollationKey::~CollationKey </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sort key destructor. </p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004414">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a7a171f495a64dc8bc0cebdfcf5c93980"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classicu_1_1Collator.html#ac9827be018f594eae0573473034233b7">Collator::EComparisonResult</a> icu::CollationKey::compareTo </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1CollationKey.html">CollationKey</a> &amp;&#160;</td>
          <td class="paramname"><em>target</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convenience method which does a string(bit-wise) comparison of the two collation keys. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">target</td><td>target collation key to be compared with </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns Collator::LESS if sourceKey &lt; targetKey, Collator::GREATER if sourceKey &gt; targetKey and Collator::EQUAL otherwise. </dd></dl>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000365">Deprecated:</a></b></dt><dd>ICU 2.6 use the overload with error code </dd></dl>

</div>
</div>
<a class="anchor" id="af4aaf9f6ddac5e3cb698cd27efbfa425"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="ucol_8h.html#a8b4e71db8109af87f84ac1576e2b245d">UCollationResult</a> icu::CollationKey::compareTo </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1CollationKey.html">CollationKey</a> &amp;&#160;</td>
          <td class="paramname"><em>target</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c">UErrorCode</a> &amp;&#160;</td>
          <td class="paramname"><em>status</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convenience method which does a string(bit-wise) comparison of the two collation keys. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">target</td><td>target collation key to be compared with </td></tr>
    <tr><td class="paramname">status</td><td>error code </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns UCOL_LESS if sourceKey &lt; targetKey, UCOL_GREATER if sourceKey &gt; targetKey and UCOL_EQUAL otherwise. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004420">Stable:</a></b></dt><dd>ICU 2.6 </dd></dl>

</div>
</div>
<a class="anchor" id="a6c16b4644df8212bf03fab6ad8e1c752"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const uint8_t * icu::CollationKey::getByteArray </td>
          <td>(</td>
          <td class="paramtype">int32_t &amp;&#160;</td>
          <td class="paramname"><em>count</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns a pointer to the collation key values. </p>
<p>The storage is owned by the collation key and the pointer will become invalid if the key is deleted. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">count</td><td>the output parameter of number of collation key values, including any trailing nulls. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the collation key values. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004419">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>Definition at line <a class="el" href="sortkey_8h_source.html#l00330">330</a> of file <a class="el" href="sortkey_8h_source.html">sortkey.h</a>.</p>

<p>References <a class="el" href="uversion_8h_source.html#l00132">U_NAMESPACE_END</a>.</p>

</div>
</div>
<a class="anchor" id="aaced6bf2b5e3e8b7f2b876ca14980c3e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="uobject_8h.html#a22af10545208a455a6e884008df48e9f">UClassID</a> icu::CollationKey::getDynamicClassID </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>ICU "poor man's RTTI", returns a UClassID for the actual class. </p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004422">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl>

<p>Reimplemented from <a class="el" href="classicu_1_1UObject.html#a1aa93096e880907080b503ff1fb0f8bc">icu::UObject</a>.</p>

</div>
</div>
<a class="anchor" id="aa18953913575f713f4d76452cc8ee002"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="uobject_8h.html#a22af10545208a455a6e884008df48e9f">UClassID</a> icu::CollationKey::getStaticClassID </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>ICU "poor man's RTTI", returns a UClassID for this class. </p>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004423">Stable:</a></b></dt><dd>ICU 2.2 </dd></dl>

</div>
</div>
<a class="anchor" id="a21473876fe309e115c83b882fe7dc5aa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int32_t icu::CollationKey::hashCode </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Creates an integer that is unique to the collation key. </p>
<p>NOTE: this is not the same as String.hashCode. </p>
<p>Example of use: </p><pre>
.    UErrorCode status = U_ZERO_ERROR;
.    <a class="el" href="classicu_1_1Collator.html" title="The Collator class performs locale-sensitive string comparison. ">Collator</a> *myCollation = Collator::createInstance(Locale::US, status);
.    if (<a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure? ">U_FAILURE(status)</a>) return;
.    <a class="el" href="classicu_1_1CollationKey.html" title="Collation keys are generated by the Collator class. ">CollationKey</a> key1, key2;
.    UErrorCode status1 = U_ZERO_ERROR, status2 = U_ZERO_ERROR;
.    myCollation-&gt;getCollationKey("abc", key1, status1);
.    if (<a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure? ">U_FAILURE(status1)</a>) { delete myCollation; return; }
.    myCollation-&gt;getCollationKey("ABC", key2, status2);
.    if (<a class="el" href="utypes_8h.html#a4d202200b6aa6f3c965ea370e0c8155f" title="Does the error code indicate a failure? ">U_FAILURE(status2)</a>) { delete myCollation; return; }
.    // key1.hashCode() != key2.hashCode()
</pre> <dl class="section return"><dt>Returns</dt><dd>the hash value based on the string's collation order. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classicu_1_1UnicodeString.html#aad287e2225eb7e31e53c569ad011aa34" title="Generate a hash code for this object. ">UnicodeString::hashCode</a> </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004421">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a4427f8fd43d01dafe3adcec31105fa0a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> icu::CollationKey::isBogus </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Test to see if the key is in an invalid state. </p>
<p>The key will be in an invalid state if it couldn't allocate memory for some operation. </p><dl class="section return"><dt>Returns</dt><dd>Returns TRUE if the key is in an invalid, FALSE otherwise. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004418">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>Definition at line <a class="el" href="sortkey_8h_source.html#l00324">324</a> of file <a class="el" href="sortkey_8h_source.html">sortkey.h</a>.</p>

</div>
</div>
<a class="anchor" id="a12db9002ebace3662250092bb6d38bde"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> icu::CollationKey::operator!= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1CollationKey.html">CollationKey</a> &amp;&#160;</td>
          <td class="paramname"><em>source</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compare if two collation keys are not the same. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">source</td><td>the collation key to compare to. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns TRUE if two collation keys are different, FALSE otherwise. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004417">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

<p>Definition at line <a class="el" href="sortkey_8h_source.html#l00318">318</a> of file <a class="el" href="sortkey_8h_source.html">sortkey.h</a>.</p>

</div>
</div>
<a class="anchor" id="ac49d8912e6b5f9414ae7aadfa27e5fc8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classicu_1_1CollationKey.html">CollationKey</a>&amp; icu::CollationKey::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1CollationKey.html">CollationKey</a> &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Assignment operator. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">other</td><td>the object to be copied. </td></tr>
  </table>
  </dd>
</dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004415">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<a class="anchor" id="a222b7356f225601403d2a53d03978e70"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> icu::CollationKey::operator== </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classicu_1_1CollationKey.html">CollationKey</a> &amp;&#160;</td>
          <td class="paramname"><em>source</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Compare if two collation keys are the same. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">source</td><td>the collation key to compare to. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Returns true if two collation keys are equal, false otherwise. </dd></dl>
<dl class="stable"><dt><b><a class="el" href="stable.html#_stable004416">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="sortkey_8h_source.html">sortkey.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>