小编Soo*_*Tan的帖子

C++在对向量中存储字符串的副本

我在一个定义为的类中有一个私有属性vector<pair<char *, int> > data;.我用这个向量添加数据data.push_back(make_pair(p, r));.后来当我从矢量中获取数据时,我得到了p值的坏数据.返回的数据就像??U3.我认为这是因为存储了一个指向char数组的指针.我将如何在矢量中存储实际副本.如果它有助于char数组永远不会超过255个字符+ 1为null终止.

c++ vector cstring std-pair

1
推荐指数
1
解决办法
1628
查看次数

vector <pair <aStruct*,int >>不可能吗?

所以我试着创建一个向量,其中元素是结构指针和int的对,我开始认为这可能是不可能的..

假设我有以下结构:

struct node{
  string str;
  int size;
  node *child[3];
  node(string str1):str(str1){ size = 0;}
};
Run Code Online (Sandbox Code Playgroud)

和矢量:

vector< pair<node*,int> > nodvector;
Run Code Online (Sandbox Code Playgroud)

然后我尝试创建一个新节点并将其放在向量中,显然它不起作用:

int main(){
   node* nod1 = new node("HELLO");
   node* nod2 = new node("WORLD");
   nodevector.push_back(pair<nod1,3>);
   delete nod1;
   delete nod2;
}
Run Code Online (Sandbox Code Playgroud)

编译器咆哮着说:nod1不能出现在常量表达式错误中:模板参数1无效错误:模板struct std :: pair的模板参数列表中参数2的类型/值不匹配

这只是不可能的事吗?什么可以替代解决方案呢?您的意见将非常感谢!

c++ struct vector std-pair

1
推荐指数
1
解决办法
2505
查看次数

c ++中std :: pair数组的问题?

我今天正在玩一些代码,我想到了在数组中放入一堆对,但我无法让它工作.这是代码:

#include <utility>
#include <iostream>
std::pair<double,double> * pairArr;
int main(){
   pairArr = new std::pair<double,double> [3];   //creating the array

   pairArr [0] = make_pair(1.0,1.2);             //Filling arbitrary numbers
   pairArr [1] = make_pair(0.2,1.4);
   pairArr [2] = make_pair(0.8,1.3);

   std::cout<< pair[0].first << pair[1].second << pair[2].first   //Output
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

这个程序的输出并不是我输入的全部内容.

c++ arrays data-structures std-pair

1
推荐指数
1
解决办法
2万
查看次数

c ++对模板结构声明歧义!

在c ++中对类的定义中有两个typedef.它们是为了什么?在代码中没有使用它们!

template <class T1, class T2> struct pair
{
  typedef T1 first_type;
  typedef T2 second_type;

  T1 first;
  T2 second;
  pair() : first(T1()), second(T2()) {}
  pair(const T1& x, const T2& y) : first(x), second(y) {}
  template <class U, class V>
    pair (const pair<U,V> &p) : first(p.first), second(p.second) { }
}
Run Code Online (Sandbox Code Playgroud)

c++ templates definition ambiguity std-pair

0
推荐指数
2
解决办法
597
查看次数

从`const char*[2]`转换为pair <string,string>

我有一个Visual Studio 2008 C++应用程序,其中包含一个const char*[2]我想要转换为a的参数std::pair< std::string, std::string >.有一个简单的方法吗?

例如:

typedef std::pair< std::string, std::string > Group;
const char* a[ 2 ] = { "buzz", "foo" };
Group z = a; // ???

// a->first.c_str() == "buzz"
// a->second.c_str() == "foo"
Run Code Online (Sandbox Code Playgroud)

谢谢,PaulH

c++ string stl std-pair

0
推荐指数
1
解决办法
267
查看次数

在标准C中使用pair和make_pair

有没有办法在C中使用std :: pair和std :: make_pair?似乎它们适用于C++.

就像我用的那样

#include "utility"
Run Code Online (Sandbox Code Playgroud)

它说它找不到这样的文件

thansk任何建议

c utility std-pair

0
推荐指数
1
解决办法
503
查看次数