aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2006-05-15 21:07:36 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2006-05-15 21:07:36 +0000
commitf99b2be1d370134c4c0307f81a2d60470ccad81b (patch)
treed68402b60509b2068e6e80097679ed7571739d31 /libstdc++-v3/testsuite
parent95dd3097939517ea3a4f7631407f9300288a98e3 (diff)
downloadgcc-f99b2be1d370134c4c0307f81a2d60470ccad81b.zip
gcc-f99b2be1d370134c4c0307f81a2d60470ccad81b.tar.gz
gcc-f99b2be1d370134c4c0307f81a2d60470ccad81b.tar.bz2
hashtable (hashtable<>::m_find, [...]): Add.
2006-05-15 Paolo Carlini <pcarlini@suse.de> * include/tr1/hashtable (hashtable<>::m_find, m_insert_bucket): Add. (hashtable<>::find, m_insert(const value_type&, std::tr1::true_type), map_base<>::operator[]): Use the above. * testsuite/performance/23_containers/insert/unordered_map_array.cc: New. * include/tr1/hashtable (hashtable<>::find_node, insert(const value_type&, ...), erase_node): Rename to m_*, adjust callers. * include/tr1/hashtable: Minor cosmetic changes. From-SVN: r113800
Diffstat (limited to 'libstdc++-v3/testsuite')
-rw-r--r--libstdc++-v3/testsuite/performance/23_containers/insert/unordered_map_array.cc61
1 files changed, 61 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/performance/23_containers/insert/unordered_map_array.cc b/libstdc++-v3/testsuite/performance/23_containers/insert/unordered_map_array.cc
new file mode 100644
index 0000000..e682f36
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/23_containers/insert/unordered_map_array.cc
@@ -0,0 +1,61 @@
+// Copyright (C) 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include <tr1/unordered_map>
+#include <testsuite_performance.h>
+
+typedef std::tr1::unordered_map<int, int> map_type;
+typedef std::tr1::unordered_map<int, map_type> matrix_type;
+
+int main()
+{
+ using namespace __gnu_test;
+
+ time_counter time;
+ resource_counter resource;
+
+ const int sz = 1000;
+
+ matrix_type matrix;
+
+ start_counters(time, resource);
+ for (int iter = 0; iter < 50; ++iter)
+ {
+ for (int i = 0; i < sz; ++i)
+ {
+ for (int j = 0; j < sz; ++j)
+ {
+ map_type& row = matrix[i / 4];
+ ++row[j / 4];
+ }
+ }
+ }
+ stop_counters(time, resource);
+ report_performance(__FILE__, "", time, resource);
+
+ return 0;
+}