Форум программистов, компьютерный форум CyberForum.ru

Можно ли обнулить вектор? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Даны действительные числа a, b. кто поможет http://www.cyberforum.ru/cpp-beginners/thread651828.html
Даны действительные числа a, b. Получить u = min(a, b-a), y = min(ab, a+b), k = min(u+v2, 3.14).
C++ Даны отрезки а, b, c и d Даны отрезки а, b, c и d. Для каждой тройки этих отрезков, из которой можно построить треугольник, вывести на экран площадь данного треугольника. Проверку существования треугольника оформить в виде процедуры. http://www.cyberforum.ru/cpp-beginners/thread651826.html
Матрица C++
С клавиатуры вводится размерность матрицы, затем сама матрица. найти все элементв меньшие среднего арифметического можно использовать только 1 оператор цикла.
C++ Даны натуральные числа a,b,c
Даны натуральные числа a, b, c. Определить функцию bin (x), переводящую число х из десятичной системы счисления в двоичную. Найти двоичное представление эти чисел.
C++ блочный шифр ХТЕА http://www.cyberforum.ru/cpp-beginners/thread651816.html
Здорова всем. Помогите пожалуйста реализовать программный код блочного шифра ХТЕА. Сам программный код у меня есть. Проблема заключается в его реализации так как я не умею программировать на С++. Текст программы #include<stdio.h> #include<memory.h> typedef unsigned char byte;
C++ Игра слов, игра Scrabble Задание: Создать программу для решения задачи построения слова из некоторого множества букв (игра Scrabble) используя алгоритмы поиска в глубину и в ширину. Длина слова не менее 5 букв. Заранее спасибо подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
15.09.2012, 14:47     Можно ли обнулить вектор?
Если надо, помимо всего прочего, почистить также и память, то делать так:
std::vector<type>().swap(vec);
Пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <vector>
 
int main()
{
    std::vector<int> vec(10, 0);
    
    std::cout << vec.size() << "\t" << vec.capacity() << std::endl;
    // 10 10 - в векторе 10 элементов, памяти выделено под 10 элементов
    
    vec.clear(); // якобы очищаем вектор
    
    std::cout << vec.size() << "\t" << vec.capacity() << std::endl;
    // 0 10 - в векторе 0 элементов, однако памяти выделено всё ещё под 10 элементов
    
    std::vector<int>().swap(vec);
    // создаём временный пустой вектор и меняем его содержимое с содержимым нашего
    // вектора; после этой строки временный вектор (в котором все данные из нашего
    // старого вектора) уничтожится, а старый вектор будет пуст (т.е. будет содержать
    // то, что содержал новенький с иголочки временный вектор без данных)
    
    std::cout << vec.size() << "\t" << vec.capacity() << std::endl;
    // 0 10 - в векторе 0 элементов, памяти выделено под 0 элементов
    
    return 0;
}
http://liveworkspace.org/code/5fb238...ed2f120fafb062
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru