Я в ситуации с объявлением vector<vector<string>>
. В окнах это нормально, я могу объявить это в структуре, например, vector<vector<string>>v={{"me","you"}}
, но на машине linux ... только ошибки, поэтому я должен объявить ее после инициализации структуры, но так как mystruct.vec[0]={"me","you"}
дает мне ошибку сегментации. Любые предложения, пожалуйста?Векторы векторов строка номер
ответ
Эта программа GCC 4.7.2 работает просто отлично:
#include <vector>
#include <string>
#include <utility>
#include <iostream>
using ::std::vector;
using ::std::string;
using ::std::move;
vector<vector<string>> foo()
{
vector<vector<string>>v={{"me","you"}};
return move(v);
}
int main()
{
using ::std::cout;
cout << "{\n";
for (auto &i: foo()) {
cout << " {\n";
for (auto &o: i) {
cout << " \"" << o << "\",\n";
}
cout << " },\n";
}
cout << "}\n";
return 0;
}
Он производит этот выход:
$ /tmp/a.out
{
{
"me",
"you",
},
}
Я думаю, что ваш проблема - это старый компилятор или у вас есть другая проблема в каком-то другом месте вашего кода.
Я использовал эту командную строку для компиляции:
$ g++ -std=gnu++0x -march=native -mtune=native -Ofast -Wall -Wextra vvstr.cpp
И мой г ++ дает это как вариант:
$ g++ --version
g++ (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8)
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Эта страница расскажет вам, какую версию GCC имеет какую функцию C++:
Похоже, что у меня 4.4.5 (debian). – siloan
@siloan - Похоже, что списки инициализаторов были введены в 4.4. Вы уверены, что компилируете флаги '-std = gnu ++ 0x' или' -std = C++ 0x'? – Omnifarious
Да, я компилирую с этим флагом и для этого 'std :: vector
Если вы используете GCC, им нужна версия, которая поддерживает эту функцию инициализации C++ 11, а затем вам нужно сообщить компилятору, чтобы он компилировался в режиме C++ 11, передав ему флаг -std=c++0x
(или =std=c++11
для серии 4.7). См this demo, скомпилированные с GCC 4.7.2:
#include <vector>
#include <string>
int main()
{
std::vector<std::vector<std::string>> v = {{"me","you"}};
}
- 1. Условные векторы векторов в R
- 2. Зависимость: Направление векторов и векторы Расстояния
- 3. Попадая векторы членов из векторов объектов
- 4. CUDA: векторы сложения и векторов размер
- 5. Высококачественный сюжет из двух векторов: разделить векторы?
- 6. Векторы внутри векторов - Изменение конкретных элементов
- 7. C++ Объединение векторов, если они делят номер
- 8. Высвобождения векторов векторов после использования
- 9. Векторы сопоставления
- 10. Как получить максимально независимые векторы, заданные набором векторов в MATLAB?
- 11. C++ Для циклов через векторы структур (содержащий больше векторов структур)
- 12. Отделите один вектор векторов на отдельные векторы в clojure
- 13. WordVectors Как конкатенировать векторы векторов для формирования предложения vector
- 14. Оптимизация скорости: очередь векторов против очереди указателей на векторы
- 15. Векторы в Java, как вернуть несколько векторов в объект
- 16. Как удалить повторяющиеся векторы из набора векторов в C++?
- 17. Списки, вставные векторы и несвязанные векторы для тяжелых научных вычислений
- 18. Вставка в векторы C++
- 19. Сравнение векторов в массиве векторов
- 20. C++ Полиморфизм и векторы, указывающие производный класс векторов на базовый класс векторов
- 21. Преобразование нормальных векторов поверхности и касательных векторов
- 22. Сортировка векторов векторов в C++
- 23. Многомерные векторы в C++
- 24. Извлечение векторов из элементов списка векторов
- 25. Быстрого распределения векторов векторов
- 26. Номер и строка исключения
- 27. Номер телефона Строка Int
- 28. Preg_Split номер и строка
- 29. Номер строки Строка
- 30. Строка номер неправильно
Возможно, разные версии компиляторов или компиляторы на окнах и Linux. Укажите, какие компиляторы вы используете или (для решения) просто обновите Linux-модуль до последнего компилятора. –
Эта инициализация относительно новая - это C++ 11. Не все компиляторы предлагают полную поддержку стандарта. – dasblinkenlight
Ну, на окнах я использую кодовые блоки с mingw и последними gcc на linux. – siloan