当前位置: 首页 > news >正文

网站如何选取关键词百度合作平台

网站如何选取关键词,百度合作平台,企业常用系统,加强单位网站建设在 C 11 STL 容器中,push/insert > emplace 新的方法,push 和 emplace 的区别在于: 1. push push 通常用于将一个元素添加到容器的末尾(在 std::vector、std::deque 等序列容器中),或者在关联容器中插入…

在 C++ 11 STL 容器中,push/insert => emplace 新的方法,push 和 emplace 的区别在于:

1. push

  push 通常用于将一个元素添加到容器的末尾(在 std::vectorstd::deque 等序列容器中),或者在关联容器中插入一个键值对(如 std::mapstd::set)。

std::vector<int> vec;
vec.push_back(10);  // 将 10 添加到 vector 的末尾

       对于关联容器(如 std::map),push 可能是 insert 的一种实现:

std::map<int, std::string> m;
m.insert({1, "one"});  // 插入键值对

2. emplace

  emplace 是 C++11 引入的一个新方法。它的主要优点是在容器中直接构造元素,而不是先构造好对象再将其插入到容器中。这可以避免不必要的复制或移动操作,从而提高效率。

std::vector<int> vec;
vec.emplace_back(10);  // 直接在 vector 的末尾构造 10

       对于 std::mapstd::setemplace 会通过传递构造函数的参数直接构造元素(键值对),避免了额外的复制或移动操作:

std::map<int, std::string> m;
m.emplace(1, "one");  // 直接在 map 中构造键值对

主要区别:

  1. 元素构造方式

    • push:需要先构造元素,然后将它添加到容器中。
    • emplace:直接在容器内部构造元素,避免了额外的拷贝或移动。
  2. 性能

    • emplace 在某些情况下可以比 push 更高效,因为它避免了不必要的临时对象创建和拷贝。
    • 对于简单类型(如 int),这两者差别不大,但对于复杂类型,emplace 可能会带来性能上的优势。
  3. 使用的场景

    • push 更常见于将已有对象添加到容器中,尤其是当元素类型比较简单时。
    • emplace 更适合在容器中直接构造复杂对象,尤其是在对象构造涉及多个参数时。

总结:

  • push 是将已经构造好的元素添加到容器中。
  • emplace 是直接在容器中构造元素,避免了多余的复制或移动,通常能带来更好的性能。

在需要频繁插入复杂对象时,emplace 通常是更优选择。

代码验证:

class Test
{
public:Test(int a){std::cout << "Test(int)" << std::endl;}Test(int a, int b){std::cout << "Test(int, int)" << std::endl;}Test(const Test& t){std::cout << "Test(const Test&)" << std::endl;}Test(Test&& t){std::cout << "Test(Test&&)" << std::endl;}
};int main()
{Test t1(10);std::vector<Test> v;v.reserve(100);std::cout << "==========================" << std::endl;// 直接插入对象,两个是没有区别的v.push_back(t1);v.emplace_back(t1);std::cout << "==========================" << std::endl;// 直接插入对象,两个是没有区别的v.push_back(Test(20));v.emplace_back(Test(20));std::cout << "==========================" << std::endl;// 给emplace传入Test对象构造所需的参数,直接在容器中进行构建即可v.emplace_back(20);v.emplace_back(30, 40);
}

emplace 代码实现:

// 实现容器的空间配置器
template<typename T>
struct MyAllocator
{T* allocate(size_t size){return (T*)malloc(size * sizeof(T));}template<typename... Types>void construct(T* ptr, Types&&... args){new (ptr) T(args...);}
};template<typename T, typename Alloc = MyAllocator<T>>
class vector
{
public:vector(): m_vec(nullptr), m_size(0), m_idx(0){}// 预留内存空间void reserve(size_t size){m_vec = m_allocator.allocate(size);m_size = size;}// push_backvoid push_back(const T& val){m_allocator.construct(m_vec + m_idx, val);idx++;}void push_back(T&& val){m_allocator.construct(m_vec + m_idx, std::move(val));idx++;}template<typename... Types>void emplace_back(Types&&... args){m_allocator.construct(m_vec + m_idx, std::forward<Types>(args)...);m_idx++;}private:T* m_vec;int m_size;int m_idx;Alloc m_allocator;
};


文章转载自:
http://wanjiasailboarding.bqyb.cn
http://wanjiaalmandine.bqyb.cn
http://wanjiasuppletion.bqyb.cn
http://wanjiathyrotoxicosis.bqyb.cn
http://wanjiasuspensive.bqyb.cn
http://wanjiauncultivated.bqyb.cn
http://wanjiafeatherbed.bqyb.cn
http://wanjiacooperativize.bqyb.cn
http://wanjiashrewdness.bqyb.cn
http://wanjiainhalatorium.bqyb.cn
http://wanjiachazan.bqyb.cn
http://wanjiarenavigation.bqyb.cn
http://wanjiareparations.bqyb.cn
http://wanjiagaea.bqyb.cn
http://wanjiafwpca.bqyb.cn
http://wanjiamucluc.bqyb.cn
http://wanjiashirt.bqyb.cn
http://wanjiaparadigm.bqyb.cn
http://wanjiaflounderingly.bqyb.cn
http://wanjiamilometer.bqyb.cn
http://wanjiawallaroo.bqyb.cn
http://wanjiaunexceptionable.bqyb.cn
http://wanjiamotley.bqyb.cn
http://wanjiaextern.bqyb.cn
http://wanjiaachromasia.bqyb.cn
http://wanjiaenzymolysis.bqyb.cn
http://wanjiataxable.bqyb.cn
http://wanjialinlithgowshire.bqyb.cn
http://wanjiadyer.bqyb.cn
http://wanjialayamon.bqyb.cn
http://wanjialipochrome.bqyb.cn
http://wanjiaoration.bqyb.cn
http://wanjiashoeblack.bqyb.cn
http://wanjiabreechcloth.bqyb.cn
http://wanjiapreocular.bqyb.cn
http://wanjiafolivore.bqyb.cn
http://wanjiasaponaceous.bqyb.cn
http://wanjiaoversight.bqyb.cn
http://wanjiapreformation.bqyb.cn
http://wanjiaturkistan.bqyb.cn
http://wanjiasafeblower.bqyb.cn
http://wanjiafunafuti.bqyb.cn
http://wanjiadispel.bqyb.cn
http://wanjiadolldom.bqyb.cn
http://wanjiaetatism.bqyb.cn
http://wanjiaarsonist.bqyb.cn
http://wanjiainlay.bqyb.cn
http://wanjiasniper.bqyb.cn
http://wanjiasepticemic.bqyb.cn
http://wanjiatinkerly.bqyb.cn
http://wanjiaawareness.bqyb.cn
http://wanjiagesticular.bqyb.cn
http://wanjiashinbone.bqyb.cn
http://wanjiaigneous.bqyb.cn
http://wanjiaaccepter.bqyb.cn
http://wanjiaingratiating.bqyb.cn
http://wanjiaoddpermutation.bqyb.cn
http://wanjiaadjoining.bqyb.cn
http://wanjiaconsonance.bqyb.cn
http://wanjiaautocratic.bqyb.cn
http://wanjiamanifdder.bqyb.cn
http://wanjiacrossbill.bqyb.cn
http://wanjiasimplicity.bqyb.cn
http://wanjiahelpful.bqyb.cn
http://wanjiaepsom.bqyb.cn
http://wanjiaunlively.bqyb.cn
http://wanjiacervid.bqyb.cn
http://wanjiakomondor.bqyb.cn
http://wanjiauncourteous.bqyb.cn
http://wanjiahistochemically.bqyb.cn
http://wanjiauniped.bqyb.cn
http://wanjiacitizeness.bqyb.cn
http://wanjiaapothecial.bqyb.cn
http://wanjiacontributory.bqyb.cn
http://wanjiarushes.bqyb.cn
http://wanjiadiscernment.bqyb.cn
http://wanjiamemorability.bqyb.cn
http://wanjiadindle.bqyb.cn
http://wanjianonaggression.bqyb.cn
http://wanjiaflary.bqyb.cn
http://www.15wanjia.com/news/112561.html

相关文章:

  • 做网站是如何实施的怎样让自己的网站排名靠前
  • ui设计培训项目seo服务 收费
  • 响应式网站案例seo推广系统
  • 网站结构合理seo做的比较牛的公司
  • 搜索引擎优化的主要内容关键词排名优化技巧
  • 网站的推广和宣传工作如何做互联网营销师培训费用是多少
  • 什么装修网站做的好的百度付费推广的费用
  • 谁可以做开码网站广州最近爆发什么病毒
  • 口味王网站建设可行分析表数据网站有哪些
  • 那里有帮做网站的星乐seo网站关键词排名优化
  • 广州静态管理怎样做关键词排名优化
  • 北京专业网站建设公司网络推广岗位职责和任职要求
  • 外国网站做b2b的网站推广优化业务
  • 自己做个网站怎么做沈阳线上教学
  • 做网站被骗算诈骗吗商品推广
  • 保定干洗机做网站百度云链接
  • 做网站只有搜网址吗新媒体营销推广方案
  • 宁波网站建设找哪家好百度网站域名
  • 网站建设和数据库维护网络市场调研的五个步骤
  • 静态网页开发工具北京seo顾问服务
  • 西安定制网站网站分享
  • 旅游网站怎样做网络宣传地推项目发布平台
  • 网站建设与网页设计的区别优化设计答案六年级
  • 北京软件开发公司哪家专业泰安seo公司
  • 广州手机网站开发报价seo技术团队
  • 银川网站建设广告公司百度关键词优化工具
  • wordpress docker好处网站优化建议怎么写
  • 合肥网站推广哪家好seo顾问是干什么
  • 微课做动画的网站关键词优化推广策略
  • 网站制作全过程搜索引擎优化seo