Object returned by Table::ReadRows(), enumerates rows in the response.
Thread-safety
Two threads operating concurrently on the same instance of this class or the iterators obtained from it are not guaranteed to work.
Iterate over the results of ReadRows() using the STL idioms.
The returned iterator is a single-pass input iterator that reads rows from the RowReader when incremented. The first row may be read when the iterator is constructed.
Creating, and particularly incrementing, multiple iterators on the same RowReader is unsupported and can produce incorrect results.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-14 UTC."],[[["\u003cp\u003eThis document outlines the \u003ccode\u003eRowReader\u003c/code\u003e class, which is responsible for enumerating rows in the response returned by \u003ccode\u003eTable::ReadRows()\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eRowReader\u003c/code\u003e class is not thread-safe when multiple threads operate concurrently on the same instance or its iterators.\u003c/p\u003e\n"],["\u003cp\u003eThe document provides a comprehensive list of versions, ranging from version 2.11.0 to 2.37.0-rc (latest), of the \u003ccode\u003eRowReader\u003c/code\u003e class.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eRowReader\u003c/code\u003e has multiple constructors that take parameters such as client, table name, row set, rows limit, filter, and various policy objects.\u003c/p\u003e\n"],["\u003cp\u003eThe class includes functions like \u003ccode\u003ebegin()\u003c/code\u003e, \u003ccode\u003eend()\u003c/code\u003e, and \u003ccode\u003eCancel()\u003c/code\u003e to manage the iteration and termination of the read operation, as well as a type alias \u003ccode\u003eiterator\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Class RowReader (2.12.0)\n\nVersion 2.12.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/bigtable/latest/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.41.0](/cpp/docs/reference/bigtable/2.41.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.40.0](/cpp/docs/reference/bigtable/2.40.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.39.0](/cpp/docs/reference/bigtable/2.39.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.38.0](/cpp/docs/reference/bigtable/2.38.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.37.0](/cpp/docs/reference/bigtable/2.37.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.36.0](/cpp/docs/reference/bigtable/2.36.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.35.0](/cpp/docs/reference/bigtable/2.35.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.34.0](/cpp/docs/reference/bigtable/2.34.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.33.0](/cpp/docs/reference/bigtable/2.33.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.32.0](/cpp/docs/reference/bigtable/2.32.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.31.0](/cpp/docs/reference/bigtable/2.31.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.30.0](/cpp/docs/reference/bigtable/2.30.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.29.0](/cpp/docs/reference/bigtable/2.29.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.28.0](/cpp/docs/reference/bigtable/2.28.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.27.0](/cpp/docs/reference/bigtable/2.27.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.26.0](/cpp/docs/reference/bigtable/2.26.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.25.1](/cpp/docs/reference/bigtable/2.25.1/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.24.0](/cpp/docs/reference/bigtable/2.24.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.23.0](/cpp/docs/reference/bigtable/2.23.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.22.1](/cpp/docs/reference/bigtable/2.22.1/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.21.0](/cpp/docs/reference/bigtable/2.21.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.20.0](/cpp/docs/reference/bigtable/2.20.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.19.0](/cpp/docs/reference/bigtable/2.19.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.18.0](/cpp/docs/reference/bigtable/2.18.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.17.0](/cpp/docs/reference/bigtable/2.17.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.16.0](/cpp/docs/reference/bigtable/2.16.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.15.1](/cpp/docs/reference/bigtable/2.15.1/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.14.0](/cpp/docs/reference/bigtable/2.14.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.13.0](/cpp/docs/reference/bigtable/2.13.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.12.0](/cpp/docs/reference/bigtable/2.12.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader)\n- [2.11.0](/cpp/docs/reference/bigtable/2.11.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader) \nObject returned by [`Table::ReadRows()`](/cpp/docs/reference/bigtable/2.12.0/classgoogle_1_1cloud_1_1bigtable_1_1Table#classgoogle_1_1cloud_1_1bigtable_1_1Table_1a337d7204d6ca65ccf7824a53ead0dfdb), enumerates rows in the response. \n\n###### Thread-safety\n\nTwo threads operating concurrently on the same instance of this class or the iterators obtained from it are **not** guaranteed to work.\nIterate over the results of ReadRows() using the STL idioms.\n\nConstructors\n------------\n\n### RowReader()\n\nDefault constructs an empty [RowReader](/cpp/docs/reference/bigtable/2.12.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader).\n\n### RowReader(std::shared_ptr\\\u003c DataClient \\\u003e, std::string, RowSet, std::int64_t, Filter, std::unique_ptr\\\u003c RPCRetryPolicy \\\u003e, std::unique_ptr\\\u003c RPCBackoffPolicy \\\u003e, MetadataUpdatePolicy, std::unique_ptr\\\u003c internal::ReadRowsParserFactory \\\u003e)\n\n### RowReader(std::shared_ptr\\\u003c DataClient \\\u003e, std::string, std::string, RowSet, std::int64_t, Filter, std::unique_ptr\\\u003c RPCRetryPolicy \\\u003e, std::unique_ptr\\\u003c RPCBackoffPolicy \\\u003e, MetadataUpdatePolicy, std::unique_ptr\\\u003c internal::ReadRowsParserFactory \\\u003e)\n\n### RowReader(RowReader \\&\\&)\n\nFunctions\n---------\n\n### begin()\n\nInput iterator over rows in the response. \nThe returned iterator is a single-pass input iterator that reads rows from the [RowReader](/cpp/docs/reference/bigtable/2.12.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader) when incremented. The first row may be read when the iterator is constructed.\n\nCreating, and particularly incrementing, multiple iterators on the same [RowReader](/cpp/docs/reference/bigtable/2.12.0/classgoogle_1_1cloud_1_1bigtable_1_1RowReader) is unsupported and can produce incorrect results.\n\nRetry and backoff policies are honored.\n\n### end()\n\nEnd iterator over the rows in the response.\n\n### Cancel()\n\nGracefully terminate a streaming read. \nInvalidates iterators.\n\nType Aliases\n------------\n\n### iterator\n\n**Alias Of** : `StreamRange\u003c Row \u003e::iterator`"]]