---
name: "sc_SCMatrixSubblockIter"
section: "3"
platform: "linux"
package: "libsc-doc"
version: "2.3.1-22"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/sc_SCMatrixSubblockIter"
---

# sc\_SCMatrixSubblockIter(3)

Objects of class SCMatrixSubblockIter are used to iterate through the blocks of a matrix.

## NAME

sc::SCMatrixSubblockIter - Objects of class **SCMatrixSubblockIter** are used to iterate through the blocks of a matrix.

## SYNOPSIS

`#include <block.h>`

Inherits **sc::RefCount**.

Inherited by **sc::SCMatrixCompositeSubblockIter**, **sc::SCMatrixJointSubblockIter**, **sc::SCMatrixListSubblockIter**, **sc::SCMatrixNullSubblockIter**, and **sc::SCMatrixSimpleSubblockIter**.

### Public Types

enum **Access** { **Read**, **Write**, **Accum**, **None** }\

### Public Member Functions

**SCMatrixSubblockIter** (Access **access**)\
 The access variable should be one of Read, Write, Accum, and None, with the **SCMatrixSubblockIter**:: scope operator applied.  virtual void **begin** ()=0\
 Start at the beginning.  virtual int **ready** ()=0\
 Returns nonzero if there is another block.  virtual void **next** ()=0\
 Proceed to the next block.  virtual **SCMatrixBlock** \* **block** ()=0\
 Return the current block.  Access **access** () const\
 Return the type of Access allowed for these blocks.

### Protected Attributes

Access **access\_**\

### Additional Inherited Members

## Detailed Description

Objects of class **SCMatrixSubblockIter** are used to iterate through the blocks of a matrix.

The object must be deleted before using the matrix that owns the blocks that **SCMatrixSubblockIter** is iterating through.

## Member Function Documentation

### virtual void sc::SCMatrixSubblockIter::begin ()` [pure virtual]`

Start at the beginning.

Implemented in **sc::SCMatrixSimpleSubblockIter**, **sc::SCMatrixListSubblockIter**, **sc::SCMatrixNullSubblockIter**, **sc::SCMatrixCompositeSubblockIter**, **sc::SCMatrixJointSubblockIter**, and **sc::DistSCMatrixListSubblockIter**.

### virtual SCMatrixBlock \* sc::SCMatrixSubblockIter::block ()` [pure virtual]`

Return the current block.

Implemented in **sc::SCMatrixSimpleSubblockIter**, **sc::SCMatrixListSubblockIter**, **sc::SCMatrixNullSubblockIter**, **sc::SCMatrixCompositeSubblockIter**, and **sc::SCMatrixJointSubblockIter**.

### virtual void sc::SCMatrixSubblockIter::next ()` [pure virtual]`

Proceed to the next block.

Implemented in **sc::SCMatrixSimpleSubblockIter**, **sc::SCMatrixListSubblockIter**, **sc::SCMatrixNullSubblockIter**, **sc::SCMatrixCompositeSubblockIter**, **sc::SCMatrixJointSubblockIter**, and **sc::DistSCMatrixListSubblockIter**.

### virtual int sc::SCMatrixSubblockIter::ready ()` [pure virtual]`

Returns nonzero if there is another block.

Implemented in **sc::SCMatrixSimpleSubblockIter**, **sc::SCMatrixListSubblockIter**, **sc::SCMatrixNullSubblockIter**, **sc::SCMatrixCompositeSubblockIter**, and **sc::SCMatrixJointSubblockIter**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
