Lists Vectors in c++ and c# with copy assign insert AddRange 42
Learn how to #copy a chunk or #range of data from one list and vector and add to another #list and #vector #data #structures. How to #delete or #remove a range or chunk of data from a list and a vector in c plus plus and c sharp.
C++ Code:
#include <iostream> //for cout
#include <fstream> // for ofstream/ifstream
#include <string> //for << and getline
#include <vector> //for vectors
#include<list> //for lists
#include<algorithm> //for find_if
#include <iterator> // for inserter
bool element_fullstop(const std::string &element)
{
if (!(element == "."))
{
return false; //predicate is a function that returns a boolean value.
}
return true;
}
int main(int argc, char *argv[])
{
std::ifstream input_file("test.txt");
std::ofstream output_file("test.txt.out");
//std::list<std::string> elements;
//std::list<std::string> arrange;
std::vector<std::string> elements;
std::vector<std::string> arrange;
std::string line;
for (int line_no = 0; std::getline(input_file, line); ++line_no)
{
for (size_t i = 0; i < line.size(); i++)
{
elements.push_back(std::string(1, line[i]));
}
//elements.push_back(line);
}
//std::list<std::string>::iterator iter = elements.begin();
std::vector<std::string>::iterator iter = elements.begin();
for (; iter != elements.end(); ++iter)
{
std::cout << (*iter);
output_file << (*iter);
}
//std::list<std::string>::iterator stop = std::find_if(elements.begin(),
//elements.end(), element_fullstop);
std::vector<std::string>::iterator stop = std::find_if(elements.begin(),
elements.end(), element_fullstop);
if (stop == elements.end())
{
std::cout << "element . not found" << std::endl;
}
++stop;
//arrange.splice(arrange.begin(), elements, elements.begin(), stop);
//std::copy(elements.begin(), stop,
//std::inserter(arrange, arrange.begin()));//works with erase
//std::copy(elements.begin(), stop,std::back_inserter(arrange));//works with erase
//arrange.assign(elements.begin(), stop);//works with erase
arrange.insert(arrange.begin(), elements.begin(), stop);
elements.erase(elements.begin(), stop);
std::cout << std::endl;
std::cout << "picked up data for arrange:" << std::endl;
//std::list<std::string>::iterator it = arrange.begin();
std::vector<std::string>::iterator it = arrange.begin();
for (; it != arrange.end(); ++it)
{
std::cout << (*it);
output_file << (*it);
}
if (input_file)
{
input_file.close();
output_file.close();
}
std::cin.get();
return 0;
}
C# Code:
using System;//for Console
using System.Collections.Generic;//for lists
using System.IO;//to use StreamReader
namespace lec2csharp
{
class Program
{
static bool ElementFullstop(string element)
{
if (!(element == "."))
{
return false;
}
return true;
}
static void Main(string[] args)
{
StreamReader input_file = new StreamReader("test.txt");
StreamWriter output_file = new StreamWriter("test.txt.out");
List<string> elements = new List<string>();
List<string> arrange = new List<string>();
string line = "";
for (int line_no = 1; (line = input_file.ReadLine()) != null; ++line_no)
{
for (int i = 0; i < line.Length; i++)
{
elements.Add(Char.ToString(line[i]));
}
//elements.Add(line);
}
foreach (string iter in elements)
{
Console.Write(iter);
output_file.Write(iter);
}
int stop = elements.FindIndex(0, elements.Count, ElementFullstop);
if (stop == elements.Count)
{
Console.WriteLine("element . not found");
}
++stop;
//arrange.InsertRange(0, elements.GetRange(0, stop));
arrange.AddRange(elements.GetRange(0, stop));
elements.RemoveRange(0, stop);
Console.WriteLine();
Console.WriteLine("picked up data for arrange: ");
foreach (string iter in arrange)
{
Console.Write(iter);
output_file.Write(iter);
}
if (input_file != null)
{
input_file.Close();
output_file.Close();
}
Console.ReadLine();
}
}
}
#csharp #cplusplus #tutorial
List collection class in c#
C# List Collection Class
Working with generic list class and ranges in c#
Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «Lists Vectors in c++ and c# with copy assign insert AddRange 42», вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.
Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.
Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!
Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.