Commit a9488226 authored by gabrieldemarmiesse's avatar gabrieldemarmiesse

As extend doesn't exist for vectors, replaced it by a resize.

parent 5c04c1a8
# distutils: language = c++
# matrix.pyx
from libcpp.vector cimport vector
cdef class Matrix:
cdef unsigned ncols
cdef vector[float] v
def __cinit__(self, unsigned ncols):
self.ncols = ncols
def add_row(self):
"""Adds a row, initially zero-filled."""
self.v.resize(self.v.size() + self.ncols)
...@@ -16,21 +16,7 @@ The following Cython/C++ code implements a matrix of floats, ...@@ -16,21 +16,7 @@ The following Cython/C++ code implements a matrix of floats,
where the number of columns is fixed at construction time where the number of columns is fixed at construction time
but rows can be added dynamically. but rows can be added dynamically.
:: .. literalinclude:: ../../examples/userguide/buffer/matrix.pyx
# matrix.pyx
from libcpp.vector cimport vector
cdef class Matrix:
cdef unsigned ncols
cdef vector[float] v
def __cinit__(self, unsigned ncols):
self.ncols = ncols
def add_row(self):
"""Adds a row, initially zero-filled."""
self.v.extend(self.ncols)
There are no methods to do anything productive with the matrices' contents. There are no methods to do anything productive with the matrices' contents.
We could implement custom ``__getitem__``, ``__setitem__``, etc. for this, We could implement custom ``__getitem__``, ``__setitem__``, etc. for this,
...@@ -57,7 +43,7 @@ which Cython handles specially. ...@@ -57,7 +43,7 @@ which Cython handles specially.
def add_row(self): def add_row(self):
"""Adds a row, initially zero-filled.""" """Adds a row, initially zero-filled."""
self.v.extend(self.ncols) self.v.resize(self.v.size() + self.ncols)
def __getbuffer__(self, Py_buffer *buffer, int flags): def __getbuffer__(self, Py_buffer *buffer, int flags):
cdef Py_ssize_t itemsize = sizeof(self.v[0]) cdef Py_ssize_t itemsize = sizeof(self.v[0])
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment