У меня есть вектор имен. Каждый раз, когда пользователь выполняет взаимодействие с мышью, я хочу добавить элемент в свой вектор и дать ему имя пользователя. Использование параметров Cinder Framework в качестве графического интерфейса. Вот код:
#include "cinder/app/App.h"
#include "cinder/app/RendererGl.h"
#include "cinder/gl/gl.h"
#include "cinder/params/Params.h"
using namespace ci;
using namespace ci::app;
using namespace std;
class TestParamsApp : public App {
public:
void setup() override;
void mouseUp( MouseEvent event ) override;
void draw() override;
params::InterfaceGlRef mParams;
vector<std::string> names;
int nameIdx = 0;
};
void TestParamsApp::setup()
{
mParams = params::InterfaceGl::create(getWindow(), "Test Params", toPixels(ivec2(200, 200)));
}
void TestParamsApp::mouseUp(MouseEvent event) {
names.push_back("");
mParams->addParam("Actor " + std::to_string(nameIdx), &names[nameIdx]);
nameIdx++;
}
void TestParamsApp::draw()
{
gl::clear( Color( 0, 0, 0 ) );
mParams->draw();
}
CINDER_APP( TestParamsApp, RendererGl )
Однако, после добавления второго элемента, я получаю исключение: нарушение прав чтения.
_First было 0xDDDDDDDD.