
Berkus
11.12.2017
18:45:48
вряд ли, так как дереференс end() это UB

Роман
11.12.2017
18:46:50
Нет, сработало.
std::vector<std::vector<double>> a = { {1, 2, 3}, {4, 5, 6} };
std::vector<double> mini;
mini = *std::min_element(a.begin(), a.end()); // todo
for (auto i: mini)
{
std::cout << i << " ";
}
return 0;
на данном куске кода выдало 1 2 3
Но спасибо за помощь)

Google

Berkus
11.12.2017
18:47:41
ну раз "сработало" значит всё верно! кек

Роман
11.12.2017
18:47:54
А что не так?
я в плюсах еще не тертый калач, мб я делаю что-то неправильно
Также есть вопрос: я тут взялся за портирование кода R на фрилансе, но там почти все функции базовые отсутствуют в плюсах, приходится писать самому. Есть ли на плюсах либы, аналогичные работе с матрицами в R?

Berkus
11.12.2017
18:49:02
да нет, всё нормально, в плюсах есть правило - если выглядит "сработавшим" то можно сразу в продакшен

Роман
11.12.2017
18:49:12
дело

Berkus
11.12.2017
18:49:30

Vernat
11.12.2017
18:49:54

Роман
11.12.2017
18:50:15
ну, я уже сделал почти все нужные операции из R, но в следующий раз возьму на заметку

Berkus
11.12.2017
18:52:13

Роман
11.12.2017
18:53:01
ну, тот парень обещал работы на 300-400 долларов еще, если эту закончу

Viacheslav
11.12.2017
18:55:53

Роман
11.12.2017
18:57:13
хех, у меня он в программе гарантированно заполнен

Google

Роман
11.12.2017
18:57:24
я уже проверочку эту выставил
а что, можно элегантнее проверить?

Viacheslav
11.12.2017
19:00:34

Роман
11.12.2017
19:01:05
а я, если честно, новичок. Так как оригинальный код с языка с динамической типизацией, я везде просто даблов понаставил
если честно, не в курсе, как правильно пилить шаблоны в плюсах

deep
11.12.2017
20:39:34
Добрый вечер
Столкнулся с проблемой в портировании на linux
использовал в windows _bstr_t
не знаю как без него обойтись
нужно из const wchar_t* сделать const char*
гугл не помогает толком
Может тут какой-то есть хитры, чисто линуксоидный реверанс?

Egor
11.12.2017
20:42:58
А что хранилось в wchar_t и в какой кодировке,и что должно храниться в char и в какой кодировке?

deep
11.12.2017
20:44:17
в данном случае я брал имя файла из wchar_t и конвертировал его в формат который кушает opencv::imread
по кодировке сказать не могу

Egor
11.12.2017
20:44:58
А откуда у вас вообще брался wchar?

deep
11.12.2017
20:47:16
вообще схема такая - QOpenfileDialog -> qstring-> wstring -> wchar_t -> const char
const char*

Egor
11.12.2017
20:56:41
Должно помочь: https://stackoverflow.com/a/4644922

deep
11.12.2017
21:29:55
Спасибо, сделал как там

Google

Ilia
11.12.2017
21:30:47

deep
11.12.2017
21:31:48
Но уже сделал более грамотно

Ilia
11.12.2017
21:32:29

deep
11.12.2017
21:32:58

Vladimir
12.12.2017
00:59:36

Alexander
12.12.2017
01:05:51

Anon
12.12.2017
07:48:29
Кресты на век?
На век кресты.

Anton
12.12.2017
07:51:37
во век

Саша
12.12.2017
08:09:10
Веков

Antony
12.12.2017
08:19:59
https://godbolt.org/g/zdiaSy
Хм, кажется что GCC генерирует чуть более оптимальный код: на инструкцию меньше и регистр xmm2 не используется 3 раза подряд. Если у GCC строчки 5 и 6 местами поменять, то ещё уберётся использование xmm2 два раза подряд (может станет быстрее, стоит перепроверить и зарепортить).
Посмори кстати без -ffast-math , там веселее получается

Ilia
12.12.2017
08:52:25

Dima
12.12.2017
09:05:18
вопрос офтопик, пошлите меня куда надо, если кто знает. Кто-нибудь Scylla юзает в продакшене? (это бада данных Cassandra inspired написана на С++)

BaLoo
12.12.2017
09:38:19
Всем привет.
Я плохо читаю референс, или в С++ действительно нет аналогов операций над множествами для хэш-таблиц?
На конкретном примере: нужен set_difference и set_intersection для unordered_set.

Ilia
12.12.2017
09:46:32
Лишь бы были последовательностные итераторы.
set_intersection( cbegin(um), cend(um), cbegin(um2), cend(um2));

Google

BaLoo
12.12.2017
09:50:37
Нет.
Там предусловие - отсортированность, так что это не сработает.

Anatoly
12.12.2017
09:51:49
Всем привет.
Я плохо читаю референс, или в С++ действительно нет аналогов операций над множествами для хэш-таблиц?
На конкретном примере: нужен set_difference и set_intersection для unordered_set.
видимо, посчитали, что тривиально, со сложностью O(N), хотя надо еще у Антона спросить @antoshkka :
unordered_set<int> a = {0, 10, 30};
unordered_set<int> b = { 10, 30, 40};
// intersection
unordered_set<int> i;
copy_if(a.begin(), a.end(), inserter(i, i.end()), [&b](auto&& e) {
return b.find(e) != b.end();
});
// difference
unordered_set<int> d;
copy_if(a.begin(), a.end(), inserter(d, d.end()), [&i](auto&& e) {
return i.find(e) == i.end();
});

Berkus
12.12.2017
09:52:37

Admin
ERROR: S client not available

BaLoo
12.12.2017
09:57:08
видимо, посчитали, что тривиально, со сложностью O(N), хотя надо еще у Антона спросить @antoshkka :
unordered_set<int> a = {0, 10, 30};
unordered_set<int> b = { 10, 30, 40};
// intersection
unordered_set<int> i;
copy_if(a.begin(), a.end(), inserter(i, i.end()), [&b](auto&& e) {
return b.find(e) != b.end();
});
// difference
unordered_set<int> d;
copy_if(a.begin(), a.end(), inserter(d, d.end()), [&i](auto&& e) {
return i.find(e) == i.end();
});
Да, спасибо, у меня похожая реализация, хотелось удостовериться в том, что нет стандартного решения)

Berkus
12.12.2017
09:58:15

Mr Earnest
12.12.2017
11:30:20
Привет спп комьюнити :D Вопрос такой, есть ли тут человек, который на бусте делал либы .so из под убунты для 3-его питона? Если да, швырнитесь ссылочкой, как это делать, а то я что то застрял =(
работаю на CLion, если это принесёт какой то смысл
CMakeLists.txt»
cmake_minimum_required(VERSION 3.8)
project(test_boost_1)
set(CMAKE_CXX_STANDARD 11)
find_package(PythonLibs REQUIRED)
include_directories(${PYTHON_INCLUDE_DIRS})
find_package(Boost 1.58 COMPONENTS python3)
include_directories (${Boost_INCLUDE_DIRS})
set(SOURCE_FILES library.h library.cpp warp.cpp)
add_library(test_boost_1 SHARED ${SOURCE_FILES})
target_link_libraries (test_boost_1
boost_python
${PYTHON_LIBRARIES}
${Boost_LIBRARIES}
)

Egor
12.12.2017
11:31:48
И что конкретно не получается?
И какую конкретно задачу вы хотите решить?


Mr Earnest
12.12.2017
11:32:11
/tools/clion-2017.2.1/bin/cmake/bin/cmake --build /home/mew/CLionProjects/test_boost_1/cmake-build-debug --target test_boost_1 -- -j 4
Scanning dependencies of target test_boost_1
[ 33%] Building CXX object CMakeFiles/test_boost_1.dir/library.cpp.o
[ 66%] Building CXX object CMakeFiles/test_boost_1.dir/warp.cpp.o
[100%] Linking CXX shared library libtest_boost_1.so
[100%] Built target test_boost_1
Тут вроде все норм
/test_boost_1/cmake-build-debug$ python3
Python 3.5.2 (default, Sep 14 2017, 22:51:06)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from libtest_boost_1 import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: /usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.58.0: undefined symbol: PyClass_Type
А уже тут нет =(
Я так понимаю он компилит на 27 питон
но как это правится, че то скилла не хватает
а вот что сказал 27 питон
/test_boost_1/cmake-build-debug$ python
Python 2.7.12 (default, Nov 20 2017, 18:23:56)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from libtest_boost_1 import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: ./libtest_boost_1.so: undefined symbol: _ZN4Some17NOT_AN_IDENTIFIERE


Egor
12.12.2017
11:35:54
А уберите-ка boost_python из списка target_link_libraries

Google

Egor
12.12.2017
11:36:11
По идее всё нужное уже должно быть в ${Boost_LIBRARIES}

Mr Earnest
12.12.2017
11:36:22
Сейчас попробую

Berkus
12.12.2017
11:36:38

Mr Earnest
12.12.2017
11:37:19
»> from libtest_boost_1 import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: /home/mew/CLionProjects/test_boost_1/cmake-build-debug/libtest_boost_1.so: undefined symbol: _ZNK5boost6python7objects21py_function_impl_base9max_arityEv

Berkus
12.12.2017
11:40:59
там в командной строке кстати разрешены undefined symbols в SOшке?
подозреваю что оно не всё линкует

Mr Earnest
12.12.2017
11:41:38
Что то я не понял вас, сложно :D
я вот смотрю, как народ извращается
include_directories(${Boost_INCLUDE_DIRS} ${PYTHON_INCLUDE_DIRS} "/usr/include/python2.7")
И меня это наталкивает на мыслю, что можно явно указать какой питон нужен...

Berkus
12.12.2017
11:42:58
а что буст питон находит, он должен писать же

Mr Earnest
12.12.2017
11:42:58
Ну как минимум он конфиги подтягивает, и компилит, до этого такого небыло и оно рассыпалось

Berkus
12.12.2017
11:43:34

Mr Earnest
12.12.2017
11:43:36
Но меня почему то терзают сомнения за версию
Минутку, сейчас попробую
ImportError: /home/mew/CLionProjects/test_boost_1/cmake-build-debug/libtest_boost_1.so: undefined symbol: _ZN4Some17NOT_AN_IDENTIFIERE