我没有找到回答这个问题的人,以下内容之间是否有区别:
v.push_back({x, y});
和:
v.push_back(make_pair(x, y));
假设v是这样声明的:
vector<pair<int,int> > v;
答案 0 :(得分:3)
我想您可能很快就接受了这个答案。普遍接受的方法是这样的:
node_modules/lottie-react-native
如果您查看Godbolt,您会发现它可以内联所有内容(可能是您想要的,也可能不是):
在Wandbox上运行它:
https://wandbox.org/permlink/uo3OqlS2X4s5YpB6
代码:
react-native link lottie-react-native
输出:
@objc func updateProgress(){
let duration = Float((player.currentItem?.duration.seconds)!)
let currentTime = Float((player.currentItem?.currentTime().seconds)!)
let progressTotal = currentTime/duration
let indexPath = IndexPath(row: self.tag, section: 0)
if progressTotal > 0 {
if let cell = tableView.cellForRow(at: indexPath) as? PostTableViewCell {
cell.progressBar.progress = progressTotal
cell.progressBar.progressTintColor = UIColor.blue
} else {
timer?.invalidate()
if timer != nil {
timer?.invalidate()
timer = nil
print("Timer Stopped")
}
}
}
}
当然,如果您预先在向量中保留适当数量的元素,则一切运行都会更快。也许那是提出这个问题的人真的要你说。
答案 1 :(得分:1)
我在一个在线编译器中进行了尝试,据我所知,make_pair的优化程序集与{}语法相同。
答案 2 :(得分:0)
{x, y}
中的 v.push_back({x, y})
是v
的{{1}}中的aggregate initialization (since C++11),而value_type
是创建函数并且std::make_pair
从其参数推导出的类型。
std::pair
比push_back({x, y})
的一个优势是,您可以像这样使小型结构简单(没有构造函数):
emplace_back(x, y)