winIDEA SDK
Loading...
Searching...
No Matches
Wrappers for C++ containers

The winIDEA SDK includes wrappers for C++ Standard Library containers. Consult a C++ Standard Library manual for method details. Python's help(object) function is also useful for viewing available methods for each wrapper in Python.

std::map<std::string, std::string>

The Python wrapper for :code:std::map provides Python mapping functionality for string types only: :code:std::map<std::string, std::string>. Instantiated as :code:StrStrMap, it supports overloaded operators, iterators, and easy conversion between C++ and Python objects.

Example:

import isystem.connect as ic
m = {'a': 'r', 'b': 'q'}
sm = ic.StrStrMap(m) # init StrStrMap with Python mapping
m2 = dict(sm) # init Python mapping m2 with StrStrMap
sm['counter'] = '10' # overloaded [], but for strings only
print(sm['counter'])
sm['g_timeout'] = '30'
for k in sm:
print(k, ': ', sm[k], sep='')

Output:

10
a: r
b: q
counter: 10
g_timeout: 30

Methods:**

  • :code:begin() - returns iterator pointing to the first element
  • :code:clear() - removes all elements from map
  • :code:count() - returns the number of elements in the map
  • :code:empty() - returns true if map is empty
  • :code:end() - returns iterator pointing to end
  • :code:erase(iterator) - removes elements defined by iterator
  • :code:erase(iterator_1, iterator_2) - removes elements between iterators
  • :code:find(K key) - returns iterator pointing to key
  • :code:has_key(K key) - returns true if map contains key
  • :code:items() - returns Python list of (K, V) tuples, e.g. :code:‘[('a’, '10'), ('b', '20')]
  • :code:iterator()- returns iterator object
  • :code:iteritems()- returns items iterator
  • :code:iterkeys()- returns keys iterator
  • :code:itervalues()- returns values iterator
  • :code:key_iterator()- returns key iterator
  • :code:keys()- returns Python list containing all keys from map
  • :code:lower_bound(K key)- returns an iterator pointing to the first element in the container whose key does not compare less than the parameter
  • :code:rbegin()- returns reverse iterator to reverse beginning
  • :code:rend()- returns reverse iterator to reverse end
  • :code:size()- returns the number of elements in the map
  • :code:swap(std::map<K, V>)- swaps map content
  • :code:upper_bound(K key)- returns an iterator pointing to the first element in the container whose key compares greater than the parameter
  • :code:value_iterator()- returns iterator to map values
  • :code:values()` - returns Python list of all values from map

std::vector<T>

The C++ container :code:std::vector<std::string> is available in :code:isystem.connect as :code:isystem.connect.StrVector(). Instantiate when required as a method parameter.

Methods:**

  • operator [i] - returns element at index i
  • :code:append(T element) - appends element to the end
  • :code:assign(int count, T element) - fills vector with :code:count copies of element
  • :code:back() - returns the last element
  • :code:begin() - returns iterator pointing to the first element
  • :code:capacity(*args) - returns size of allocated storage capacity
  • :code:clear() - removes all elements
  • :code:empty() - returns true if vector is empty
  • :code:end() - returns iterator pointing to end
  • :code:erase(iterator) - removes elements defined by iterator
  • :code:erase(iterator_1, iterator_2) - removes elements between iterators
  • :code:front(*args) - returns the first element
  • :code:insert(iterator position, T element) - inserts element at the given position
  • :code:iterator() - returns iterator object
  • :code:pop() - removes and returns the last element in vector
  • :code:pop_back() - removes the last element in vector
  • :code:push_back(T element) - appends element to the end
  • :code:rbegin() - returns reverse iterator to reverse beginning
  • :code:rend() - returns reverse iterator to reverse end
  • :code:reserve(*args) - changes vector capacity
  • :code:resize(*args) - changes vector size
  • :code:size() - returns the number of elements in vector
  • :code:swap(std::vector<T> v2) - swaps vector contents