set


set

A set stores elements without allowing duplicates. The example illustrates who to store words.
Un conjunto o set almacena elementos sin permitir duplicados. El ejemplo ilustra como guardar palabras.

Program.cpp
void Program::MyFunc()
{
     set<wstring> data;
     data.insert(L"desk");
     data.insert(L"chair");
     data.insert(L"lamp");
     data.insert(L"desk"); // it will not be inserted as it is already stored in the map
     data.insert(L"pen");

     //______________________________ List the content of the set
     set<wstring>::iterator p;
     for(p = data.begin(); p != data.end(); p++)
     {
          tbxList.Text += *p;
          tbxList.Text += L"\r\n";
     }
}


Problem 1
Cree a Dialog application using Wintempla called Dictionary to extract the words from a textbox. The words must be sorted in alphabetical order. Duplicates should not be stored neither displayed.
Cree una aplicación de Diálogo usando Wintempla llamada Dictionary para extraer las palabras de una caja de texto. Las palabras deben almacenarse en orden alfabético. Duplicados no se deben almacenar ni mostrar.

DictionaryRun

set::find

The following code illustrates how to find if an element is in a set.
El siguiente código ilustra cómo encontrar si un elemento se encuentra en un set.

Program.cpp
void Dictionary::Window_Open(Win::Event& e)
{
     set<wstring> mySet;
     ...
     if (mySet.find(x) == myset.end())
     {
          // Not found
     }
     else
     {
          // Found
     }
}


set::insert

The following code illustrates how to find if an element was inserted in a set.
El siguiente código ilustra cómo encontrar si un elemento se insertó en un set.

Program.cpp
void Dictionary::Window_Open(Win::Event& e)
{
     set<wstring> mySet;
     pair<set<wstring>::iterator, bool > p;
     ...
     p = mySet.insert(x);
     if (p.second == true)
     {
          // Inserted
     }
     else
     {
          // Not inserted
          // Read p.first
     }
}


Set Operations

It is possible to compute several set operations using: set_symmetric_difference(...) or set_difference(...), set_union(...), and set_intersection(...). You will need to include algorithm.h to use this function. Note that you can use these functions on STL vectors that have sorted data. See the example below.
Es posible calcular varias operaciones entre conjuntos usando: set_symmetric_difference(...) or set_difference(...), set_union(...) y set_intersection(...). Usted necesitará incluir algorithm.h para usar esta función. Note que usted puede usar estas funciones en vectores de la STL que tengan datos almacenados. Vea el ejemplo de abajo.

Program.cpp
//________________________________________________________ Using vector
vector<wstring> A;
vector<wstring> B;

...
std::sort(A.begin(), A.end());
std::sort(B.begin(), B.end());
vector<wstring> diffAB(A.size() + B.size());
vector<wstring>::iterator p = std::set_difference(A.begin(), A.end(), B.begin(), B.end(), diffAB.begin());
diffAB.resize(p - diffAB.begin());
//________________________________________________________ Using set
set<wstring> setA;
set<wstring> setB;
set<wstring> intAB;
     std::set_intersection(setA.begin(), setA.end(), setB.begin(), setB.end(), std::inserter(intAB, intAB.end()));


erase

The erase function is used to delete one element from a set. The following example illustrates how to delete one item from the container.
La función erase es usada para borrar un elemento de un set. El ejemplo siguiente ilustra cómo borrar un artículo del contenedor.

Program.cpp
...
void Program::Window_Open(Win::Event& e)
{
     set<int> data;
     data.insert(10);
     data.insert(11);
     data.insert(12);
     data.insert(13);
     data.insert(14);
     data.insert(15);
     data.erase(13);
     wstring text;
     wchar_t tmp[32];
     for (set<int>::iterator p = data.begin(); p != data.end(); p++)
     {
          _snwprintf_s(tmp, 32, _TRUNCATE, L"%d\r\n", *p);
          text += tmp;
     }
     this->MessageBox(text, L"set", MB_OK);
}


set_erase

© Copyright 2000-2019 Wintempla selo. All Rights Reserved. Sep 05 2019. Home