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 webpage documents the \u003ccode\u003eRowReader\u003c/code\u003e class, which is used to enumerate rows returned in response to a \u003ccode\u003eTable::ReadRows()\u003c/code\u003e operation.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eRowReader\u003c/code\u003e class is not thread-safe when multiple threads operate on the same instance or its iterators concurrently.\u003c/p\u003e\n"],["\u003cp\u003eThe class provides methods such as \u003ccode\u003ebegin()\u003c/code\u003e and \u003ccode\u003eend()\u003c/code\u003e to iterate over rows, as well as \u003ccode\u003eCancel()\u003c/code\u003e to terminate a streaming read, and has different constructors with varying parameter sets.\u003c/p\u003e\n"],["\u003cp\u003eThe page shows the available versions of \u003ccode\u003eRowReader\u003c/code\u003e and links to their documentation, with version 2.37.0-rc as the latest, and version 2.31.0 being the version this documentation is referencing.\u003c/p\u003e\n"],["\u003cp\u003eThe webpage details the constructors of the RowReader, as well as the functions begin(), end(), and Cancel(), along with their functionality and parameters.\u003c/p\u003e\n"]]],[],null,["# Class RowReader (2.31.0)\n\nVersion 2.31.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.31.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.31.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.31.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.31.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`"]]