假设我们有一个大小为n的向量。
第一个元素,我们必须从其他元素中获取信息。
第二个元素,我们必须从第一个元素和其他元素中获取信息。
第三个元素,我们必须从元素一,二和其他元素中获取信息。
等
我应该怎么做呢?代码到目前为止..
vector<struct> myVector;
//vector filled..
for(Struct structure : myVector){
//??
}
vector[0]
需要{vector[1] -> vector[n]}
vector[1]
需要{vector[0] , vector[2] -> vector[n]}
vector[2]
需要{vector[0] -> vector[1] , vector[3] -> vector[n]}
等
我的结构看起来像下面的内容,我需要从每个结构中获取学位信息,以便将它与当前的学位信息进行比较(看看它们彼此之间有多远)。
struct Node {
int degree;
std::string name;
int counter;
Node(std::string aName, int aDegree, int nodeCounter) {
degree = aDegree;
name = aName;
counter = nodeCounter;
}
};
答案 0 :(得分:3)
这很简单吗?
String query = "SELECT * FROM aprfreq";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
int i =0; // this variable used to be the extension for the new key
Map<String, Collection<String>> prfdata = new HashMap<String, Collection<String>>();
List<Map<String, Collection<String>>> value = new ArrayList<Map<String, Collection<String>>>();
while (rs.next())
{
String prfn = rs.getString("prfn");
String md = rs.getString("md");
String prfdn = rs.getString("prfdn");
prfdata.put("keys"+i, Arrays.asList(prfn,md,prfdn));
i = i +1;
}
request.setAttribute("data",prfdata);
如果您需要在修改初始向量之前对其进行操作,如果您需要修改它,那么只需先复制一份。
答案 1 :(得分:2)
您可以这样做:
vector<int> data = {1,2,3,4,5,6,7,8,9,10};
auto current = data.cbegin();
while (current != data.cend()) {
for (auto it = data.cbegin(); it != data.cend(); ++it) {
if (it != current)
cout << *it;
}
cout << endl;
++current;
}
答案 2 :(得分:2)
您可以测试元素的 地址 :
#include <vector>
#include <iostream>
struct Node {
std::string name;
int degree;
int counter;
Node(std::string name, int degree, int counter)
: name(name), degree(degree), counter(counter) // better to use init list
{
}
};
int main()
{
std::vector<Node> v {{"X", 1, 5}, {"O", 3, 2}, {"B", 8, 3}};
for(auto& node1: v) // take references
{
for(auto& node2: v)
{
// compare addresses
if(&node1 == &node2) // & = address of operator
continue;
// use node1 & node2 here
std::cout << node1.name << ' ' << node2.name << '\n';
}
}
}
<强>输出:强>
X O
X B
O X
O B
B X
B O