我读了另一篇文章,回答了关于指针向量的迭代器的问题.我尝试在我的代码中使用相同的概念,但我收到一些编译错误.我基于代码的代码示例是:
vector<c*> cvect;
cvect.push_back(new sc);
vector<c*>::iterator citer;
for(citer=cvect.begin(); citer != cvect.end(); citer++) {
(*citer)->func();
}
Run Code Online (Sandbox Code Playgroud)
我想使用类似的概念为具有两个数据成员的类创建深度复制构造函数,这两个数据成员是指向对象的指针.我的代码与此类似:
class MyContainer {
vector<MyStuff*> vecOne;
vector<MyStuff*> vecTwo;
public:
MyContainer(const MyContainer& other);
};
MyContainer::MyContainer(const MyContainer& other) {
// copy vector one
vector<MyStuff*>::iterator vec1_itr;
for (vec1_itr = other.vecOne.begin(); vec1_itr != other.vecOne.end(); vec1_itr++) {
vecOne.push_back(new MyStuff(vec1_itr));
}
// copy vector two
vector<MyStuff*>::iterator vec2_itr;
for (vec2_itr = other.vecTwo.begin(); vec2_itr != other.vecTwo.end(); vec2_itr++) {
vecTwo.push_back(new MyStuff(vec2_itr));
}
}
Run Code Online (Sandbox Code Playgroud)
我得到一些编译错误,如:
/path/MyContainer.cpp:38:错误:'
operator='in'vec1_Itr = other->MyContainer::vecOne. std::vector<_Tp, _Alloc>::begin [with _Tp …
我正在使用连接到Express API服务器的ReactJS前端构建应用程序.使用Ajax调用API.
在我的一个视图中,表格在每行上加载"导出"链接.导出链接指向一个React路由,该路由调用API端点,该端点提供要下载的CSV文件.
如果我直接使用有效请求(在React应用程序之外)命中API端点,则会在浏览器中启动文件下载.完善!但是,在React页面的Export链接后,尝试加载发生API调用的视图.该表从视图中消失,并被文件内容替换(为了证明我有数据),但没有下载文件.
我可以强制下载响应对象的内容作为文件吗?这可能发生在ajax成功回调中吗?我尝试使用javascript,但我正在努力使用React虚拟DOM ...我认为这一定非常直接,但我很难过.
编辑:@Blex的评论帮助我解决了这个问题!该解决方案已添加到代码段中...
这是接收数据的JSX:
module.exports = React.createClass({
mixins: [Router.State],
getInitialState: function() {
return {
auth: getAuthState(),
export: [],
passedParams: this.getParams()
};
},
componentDidMount: function(){
$.ajax({
type: 'GET',
url: ''+ API_URL +'/path/to/endpoint'+ this.state.passedParams.id +'/export',
dataType: 'text',
headers: {
'Authorization': 'Basic ' + this.state.auth.base + ''
},
success: function (res) {
// can I force a download of res here?
console.log('Export Result Success -- ', res);
if(this.isMounted()){
console.log('Export Download Data -- ', res);
this.setState({export: res[1]});
// adding the …Run Code Online (Sandbox Code Playgroud)